詳細配置主從同步的方法
1)安裝mysql
我們在ubuntu中已經有安裝一臺mysql了,現在使用docker安裝另外一臺mysql
獲取mysql的鏡像,主從同步盡量保證多臺mysql的版本相同,我們的ubuntu中存在的mysql是5.7.22版本,所以獲取5.7.22版本的鏡像
docker image pull mysql:5.7.22
或
docker load -i mysql_docker_5722.tar
運行mysql docker鏡像,需要在宿主機中建立文件目錄用於mysql容器保存數據和讀取配置文件。
在家目錄中(/home/python)中創建目錄,將mysql的配置文件放到此目錄中
cd ~ mkdir mysql_slave cd mysql_slave mkdir data cp /etc/mysql/mysql.conf.d ./
我們要將docker運行的mysql作為slave來運行,開啟前需要修改配置文件。
編輯 ~/mysql_slave/mysql.conf.d/mysqld.cnf 文件,修改
port = 8306
general_log = 0
server-id = 2
我們讓此臺mysql運行在8306端口上,且mysql編號為2
創建docker容器
docker run --name mysql-slave -e MYSQL_ROOT_PASSWORD=mysql -d --network=host -v /home/python/mysql_slave/data:/var/lib/mysql -v /home/python/mysql_slave/mysql.conf.d:/etc/mysql/mysql.conf.d mysql:5.7.22
- MYSQL_ROOT_PASSWORD 是創建mysql root用戶的密碼
測試,在ubuntu中使用mysql命令嘗試連接docker容器中的mysql
mysql -uroot -pmysql -h 127.0.0.1 --port=8306
2)備份主服務器原有數據到從服務器
如果在設置主從同步前,主服務器上已有大量數據,可以使用mysqldump進行數據備份並還原到從服務器以實現數據的復制。
在主服務器Ubuntu上進行備份,執行命令:
mysqldump -uroot -pmysql --all-databases --lock-all-tables > ~/master_db.sql
-
-u :用戶名
-
-p :示密碼
-
--all-databases :導出所有數據庫
-
--lock-all-tables :執行操作時鎖住所有表,防止操作時有數據修改
-
~/master_db.sql :導出的備份數據(sql文件)位置,可自己指定
在docker容器中導入數據
mysql -uroot -pmysql -h127.0.0.1 --port=8306 < ~/master_db.sql
3)配置主服務器master(Ubuntu中的MySQL)
編輯設置mysqld的配置文件,設置log_bin和server-id
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
重啟mysql服務
sudo service mysql restart
登入主服務器Ubuntu中的mysql,創建用於從服務器同步數據使用的帳號
mysql –uroot –pmysql
GRANT REPLICATION SLAVE ON *.* TO ‘slave‘@‘%‘ identified by ‘slave‘;
FLUSH PRIVILEGES;
獲取主服務器的二進制日誌信息
SHOW MASTER STATUS;
File為使用的日誌文件名字,Position為使用的文件位置,這兩個參數須記下,配置從服務器時會用到。
4)配置從服務器slave (docker中的mysql)
進入docker中的mysql
mysql -uroot -pmysql -h 127.0.0.1 --port=8306
執行
change master to master_host=‘127.0.0.1‘, master_user=‘slave‘, master_password=‘slave‘,master_log_file=‘mysql-bin.000006‘, master_log_pos=590;
- master_host:主服務器Ubuntu的ip地址
- master_log_file: 前面查詢到的主服務器日誌文件名
- master_log_pos: 前面查詢到的主服務器日誌文件位置
啟動slave服務器,並查看同步狀態
start slave;
show slave status \G
詳細配置主從同步的方法