MySql的主從復制
sudo docker pull MySQL:5.7 拉取MySQL的鏡像檔案(版本號為 5.7)
sudo docker run -p 3339:3306 --name master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 主資料庫
sudo docker run -p 3340:3306 --name slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 從資料庫
執行完 倆個命令 創建的容器默認啟動
docker ps 查看當前正在運行的 容器
docker exec -it master bash 進入master容器
cd etc/mysql 切換到 MySQL所在的路徑
vi my.cnf 對my.cnf 進行編輯 可能會報錯 原因是 沒有 容器本身沒有安裝 vim
安裝 vim
apt-get update
apt-get install vim
安裝成功后 vim my.cnf
對檔案進行編輯
[mysqld]
## 同一局域網內注意要唯一
server-id=100
## 開啟二進制日志功能
log-bin=mysql-bin
配置完成后需要重新啟動容器 service mysql restart
重啟mysql服務時會使得docker容器停止,我們還需要docker start master啟動容器,
重啟之后 再次進入容器
mysql -uroot -p123456
進入資料庫服務
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
創建用來同步的用戶,并且給用戶添加倆個權限 用來主從庫之間的同步
mysql> show master status; 查看 master的狀態
記住 file 下的檔案名字 Position 位置
退出 master 容器
docker exec -it slave bash 進入slave所組織容器
cd etc/mysql 切換到 MySQL所在的路徑
vi my.cnf 對my.cnf 進行編輯 可能會報錯 原因是 沒有 容器本身沒有安裝 vim
安裝 vim
apt-get update
apt-get install vim
安裝成功后 vim my.cnf
對檔案進行編輯
[mysqld]
## 設定server_id,注意要唯一
server-id=101
## 開啟二進制日志功能,以備Slave作為其它Slave的Master時使用
log-bin=mysql-slave-bin
## relay_log配置中繼日志
relay_log=edu-mysql-relay-bin
配置完成后需要重新啟動容器 service mysql restart
重啟mysql服務時會使得docker容器停止,我們還需要docker start master啟動容器,
重啟之后 再次進入容器
mysql -uroot -p123456
mysql> change master to master_host='master容器的ip', master_user='master容器中創建的用于主從同步的用戶', master_password='賬戶的密碼', master_port=3306, master_log_file='master下查看的file', master_log_pos= Position檔案位置, master_connect_retry=30;
執行完之后
mysql>show slave status \G; 查看主從同步狀態
Slave_IO_Running:NO
Slave_SQL_Running:NO
還未開啟主從復制狀態
mysql> start slave;
再次查看狀態
mysql>show slave status \G;
Slave_IO_Running:YES
Slave_SQL_Running:YES
即為開啟主從復制 成功
若依然為NO 可嘗試 先exit 退出MySQL服務 然后 mysql -uslave -p123456 -h127.17.0.2
先使用master中設定的,用于主從同步的用戶
啟動mysql服務后 exit
再次 使用默認用戶 mysql -uroot -p123456 啟動mysql服務
mysql>stop slave;
mysql>start slave;
mysql>show slave status \G; 再次查看狀態
倆個全為YES 主從復制即為成功
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/101386.html
標籤:MySQL
上一篇:mysql操作進階
下一篇:資料庫索引
