Docker搭建 MySQL 主從複製

#############################################################html

##################### run mysql########################mysql

############################################################sql

1-一、docker rundocker

docker search mysql5.7;bash

docker run --name master -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 -d 鏡像ID;spa

docker run --name slave -e MYSQL_ROOT_PASSWORD=123456 -p 23306:3306 -d 鏡像ID;rest

 

--name 容器命名
-e    MYSQL_ROOT_PASSWORD=123456 配置mysql的root用戶的登錄密碼
-p:端口映射,此處映射主機13306端口到容器master的3306端口
-d:成功啓動容器後輸出容器的完整IDserver

 

 

 

 

 

 

#############################################################htm

#####################master#################################blog

#############################################################

獲取root權限,進入的CONTAINER name:master

docker exec -ti -u root master bash

2-1   ifconifg 172.17.0.2

2-二、修改/ect/my.cnf**********************
--my.cnf增長下面兩行
server_id=100
log-bin=mysql-bin

重啓容器:docker restart master

2-三、進入mysql命令**********************
mysql -u root 以下mysql命令
mysql->

2-四、//執行下面命令進行複製受權**********************
mysql-> CREATE USER 'slave'@'%' IDENTIFIED BY '12345678';
mysql-> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
2-五、//檢查命令********************************************
mysql-> show master status;
以下:

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 617 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)

 

 

 

 

 

 

 

 

#############################################################

#####################slave#################################

#############################################################
docker exec -ti -u root slave bash

3-1 ifconifg 172.17.0.3

3-二、修改/ect/my.cnf**********************
--my.cnf增長下面兩行
server_id=101
log-bin=mysql-bin

重啓容器:docker restart slave

3-三、重啓容器進入容器再進入mysql命令**********************
mysql -u root 以下mysql命令
mysql->change master to master_host='172.17.0.2', master_user='slave', master_password='12345678',
master_port=3306, master_log_file='mysql-bin.000002', master_log_pos=617, master_connect_retry=30;

 

#master_host='172.17.0.2' 參考 2-1
#master_user='slave', master_password='12345678' 參考 2-4
#master_log_file='mysql-bin.000002', master_log_pos=617 參考 2-5

重啓容器:docker restart slave

 

 

3-四、//查看主從同步狀態
show slave status \G;


Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 代表配置成功


配置 master_log_file='mysql-bin.000002', master_log_pos=617,
兩個參數要注意 和 show master status 輸出的值保致

 

 

 

 

##############################################

參考:http://www.javashuo.com/article/p-mjtvksqs-gb.html

 

docker exec -ti -u root slave bash   加參數-u root  能夠直接進入容器slave的以root用戶登陸

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章
相關標籤/搜索