MySQL-docker-互爲主從複製

配置準備

兩臺機器

兩臺機器:A(193.168.10.101)  B(193.168.10.102) 做好ssh免密登錄

mysql大版本需要一致,小版本可忽略

並且兩臺機器已經安裝好了docker 

yum install docker

下載mysql鏡像

docker pull mysql:5.6.31

 

返回目錄

mysql容器準備

兩臺機器分別啓動mysql容器

[root@bigdata101 ~]# docker run -di -p 33305:3306 --name mysql_101 -v /usr/local/mysql_docker/101/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.31

[root@bigdata102 ~]# docker run -di -p 33305:3306 --name mysql_102 -v /usr/local/mysql_docker/102/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.31

查看容器是否啓動

[root@bigdata101 ~]# docker ps

分別進入兩個容器,安裝vim,並且修改配置文件

複製代碼

[root@bigdata101 ~]# docker exec -it mysql_101 /bin/bash
root@63485bfccaa1:/# apt-get update
root@63485bfccaa1:/# apt-get install vim  

root@63485bfccaa1:/# vi /etc/mysql/my.cnf  

#在配置文件最後添加
server-id=1
auto_increment_offset=1
auto_increment_increment=2
skip-slave-start
log-slave-updates=true

複製代碼

複製代碼

[root@bigdata102 ~]# docker exec -it mysql_102 /bin/bash
root@57ce31a494ad:/# apt-get update
root@57ce31a494ad:/# apt-get install vim  

root@57ce31a494ad:/# vi /etc/mysql/my.cnf  

#在配置文件最後添加
server-id=2
auto_increment_offset=2
auto_increment_increment=2
skip-slave-start
log-slave-updates=true

複製代碼

分別重啓mysql容器

[root@bigdata101 ~]# docker restart mysql_101

[root@bigdata102 ~]# docker restart mysql_102

 

返回目錄

容器配置

A(193.168.10.101) 上的容器配置

給主機B 賦予mysql權限

grant all on *.* to 'slave'@193.168.10.102 identified by '123456';

初始化bin-log日誌

reset master;
show master status;

 

B(193.168.10.102) 上的容器配置

給主機A 賦予mysql權限

grant all on *.* to 'slave'@193.168.10.101 identified by '123456';

初始化bin-log日誌

reset master;
show master status;

 

容器同步配置

在主機A的容器上重新登錄mysql後執行:

change master to master_host='193.168.10.102',master_port=33305,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;

這裏的master_host是指主機B的ip地址,master_port是B上的mysql容器啓動時賦予的端口,master_uesr是執行同步操作的用戶名,master_password是執行同步的用戶密碼,master_log_file是主機B的bin-log日誌,master_log_pos是從bin-log日誌開始同步的位置。

然後開啓同步  執行:

start slave;

查看是否成功:

show slave status\G;

 

在主機B的容器上重新登錄mysql執行:

change master to master_host='193.168.10.101',master_port=33305,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
start slave;
show slave status\G;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章