基于docker搭建mysql集群
====================master==================== docker run -p 3306:3306 --name mysql-master \ -v /mydata/mysql/master/log:/var/log/mysql \ -v /mydata/mysql/master/data:/var/lib/mysql \ -v /mydata/mysql/master/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7 vim /mydata/mysql/master/conf/my.cnf [client] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve server-id = 1 #开启binlog log_bin = mysql-bin read-only = 0 #同步的数据库 binlog-do-db = gmall_ums binlog-do-db = gmall_pms binlog-do-db = gmall_oms binlog-do-db = gmall_sms binlog-do-db = gmall_cms #忽略同步的数据库 replicate-ignore-db = mysql replicate-ignore-db = sys replicate-ignore-db = information_schema replicate-ignore-db = performance_schema docker restart mysql-master docker exec -it mysql-master /bin/bash mysql -u root -p # 授权root用户 grant all privileges on *.* to root@'%' identified by '123456' with grant option; flush privileges; # 在Master上增加一个账号专门用于同步 GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456'; docker restart mysql-master ====================slaver==================== docker run -p 3316:3306 --name mysql-slaver-01 \ -v /mydata/mysql/slaver/log:/var/log/mysql \ -v /mydata/mysql/slaver/data:/var/lib/mysql \ -v /mydata/mysql/slaver/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7 vim /mydata/mysql/slaver/conf/my.cnf [client] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake skip-name-resolve server-id = 2 #开启binlog log_bin = mysql-bin read-only = 1 #同步的数据库 binlog-do-db = gmall_ums binlog-do-db = gmall_pms binlog-do-db = gmall_oms binlog-do-db = gmall_sms binlog-do-db = gmall_cms #忽略同步的数据库 replicate-ignore-db = mysql replicate-ignore-db = sys replicate-ignore-db = information_schema replicate-ignore-db = performance_schema docker restart mysql-slaver-01 docker exec -it mysql-slaver-01 /bin/bash mysql -u root -p # 授权root用户 grant all privileges on *.* to root@'%' identified by '123456' with grant option; flush privileges; # 告诉slaver同步账户 https://blog.csdn.net/jesseyoung/article/details/41942809 CHANGE MASTER TO MASTER_HOST = '192.168.20.130', MASTER_USER = 'backup', MASTER_PASSWORD = '123456', MASTER_PORT = 3306, MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 0; docker restart mysql-slaver-01 docker exec -it mysql-slaver-01 /bin/bash mysql -u root -p # 开始同步 start slave; # 查看同步状态 show slave status\G;