MySql Docker 主主配置
阿新 • • 發佈:2021-01-07
MySql 主主
準備2臺Linux伺服器,並且在兩臺伺服器上,同時安裝docker,國內的同學可以使用aliyun的映象安裝。
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
然後,啟動MySql 容器
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 docker run -p 3306:3306 --name mysql2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
配置第一臺伺服器的mysql
# 進入mysql 容器 docker container ls docker exec -it mysql1 /bin/bash # 安裝vim, 如果已經安裝,則可以略過 apt-get update apt-get install vim # 進入mysql 伺服器之後,修改配置檔案 cd /etc/mysql vi my.cnf # 增加以下配置內容 [mysqld] server_id = 1 log-bin= mysql-bin replicate-ignore-db=mysql replicate-ignore-db=sys replicate-ignore-db=information_schema replicate-ignore-db=performance_schema read-only=0 relay_log=mysql-relay-bin log-slave-updates=on auto-increment-offset=1 auto-increment-increment=2 # 重啟mysql服務 service mysql restart docker container start mysql1 # 建立一個使用者來同步資料,重新進入容器,然後登陸mysql docker exec -it mysql1 /bin/bash mysql -uroot -p123456 # 這裡表示建立一個slave同步賬號slave,允許訪問的IP地址為%,%表示萬用字元 GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456'; # 檢視狀態,記住File、Position的值,在另外一個伺服器中將用到 show master status; # 檢視容器IP, 退出mysql exit; exit; docker inspect mysql1 | grep IPA
配置第二臺mysql 伺服器
# 進入mysql的容器 docker exec -it mysql2 /bin/bash # 安裝vim, 如果已經安裝,則可以略過 apt-get update apt-get install vim # 修改配置檔案 cd /etc/mysql vi my.cnf # 增加如下配置 [mysqld] server_id = 2 log-bin= mysql-bin replicate-ignore-db=mysql replicate-ignore-db=sys replicate-ignore-db=information_schema replicate-ignore-db=performance_schema read-only=0 relay_log=mysql-relay-bin log-slave-updates=on auto-increment-offset=2 auto-increment-increment=2 # 重啟mysql 服務 service mysql restart docker start mysql2 docker exec -it mysql2 /bin/bash mysql -uroot -p123456 # 建立一個使用者來同步資料 GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456'; # 設定主庫連結,master_host即為容器IP,master_log_file和 master_log_pos即為在mone容器中,通過show master status查出來 的值; //change master to master_host='172.17.0.2',master_user='slave',master_passwor d='123456',master_log_file='mysql- bin.000001',master_log_pos=443,master_port=3306; change master to master_host='159.89.85.150',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306; # 啟動同步 start slave ; # 檢視狀態 show master status; # 檢視容器IP: docker inspect mysql1 | grep IPA # 設定完成後,再次進入第一個伺服器的容器 docker exec -it mysql1 /bin/bash mysql -uroot -p123456 # 設定mtwo主庫連結,引數詳細說明同上 // change master to // master_host='172.17.0.3',master_user='slave',master_passwor d='123456',master_log_file='mysql-bin.000003',master_log_pos=443,master_port=3306; change master to master_host='157.245.134.29',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=443,master_port=3306; # 啟動同步 start slave; # 檢視狀態 show slave status\G;