Docker 教程十五配置MySQL 主從複製

feri發表於2018-08-16

配置主庫:
第一步:建立資料夾
mkdir -p /docker/mysql/mysqlmaster
編寫配置檔案
vim /docker/mysql/mysqlmaster/my.cnf

[client]  
default-character-set=utf8
[mysql]  
default-character-set=utf8
[mysqld]  
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
server_id = 3307  #mysql主從的重要屬性,要保證主庫和從庫的server_id不同
log_bin = log  #因為要做主從切換,所以主庫和從庫都開啟。如果只是讀寫。就只要主庫配置即可

第二步:下載MySQL 映象
docker pull mysql:5.7

第三步:建立並執行 MySQL 容器
docker run –privileged=true –name mysql -p 3307:3306 -v /docker/mysql/mysqlmaster/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

這裡寫圖片描述

第四步:連線資料庫測試
docker exec -it mysql bash
mysql -u root -p
輸入密碼:root
檢視二進位制檔案
show master status

這裡寫圖片描述

配置從庫
第一步:建立資料夾
mkdir -p /docker/mysql/mysqlslave
vim /docker/mysql/mysqlslave/my.cnf
第二步:建立並執行 MySQL 容器
docker run –privileged=true –name mysqlslave -p 3308:3306 -v /docker/mysql/mysqlslave/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

這裡寫圖片描述

配置主從:
第一步:連線主庫

設定使用者
grant replication slave on . to ‘backup’@’%’ identified by ‘qfjava’;
flush privileges;#重新整理許可權使得重新整理
第二步:檢視二進位制檔案
show master status;
二進位制檔案:log.000003 591

第三步:檢視主庫 ip 資訊
docker inspect mysql

ip:172.17.0.3

第四步:連線從庫
設定主庫資訊
CHANGE MASTER TO MASTER_HOST=’172.17.0.3’,master_port=3306,MASTER_USER=’backup’,MASTER_PASSWORD=’qfjava’,MASTER_LOG_FILE=’log.000003’,MASTER_LOG_POS=591;

start slave;#啟動複製

show slave status

這裡寫圖片描述

第五步:測試
這裡寫圖片描述

相關文章