接上篇https://blog.youkuaiyun.com/a2589293499/article/details/96840761
-
新建my.cnf文件,内容如下(从库需要注释master节点内容并取消注释slave节点内容),放入/mysql/conf 目录。
[mysql]
default-character-set = utf8mb4
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#common
default-time_zone = '+8:00'
max_connections = 2000
tmp_table_size = 200M
character-set-server = utf8mb4
max_allowed_packet = 32M
lower_case_table_names = 1
log-error = mysql-error.log
slow_query_log = on
slow-query-log-file = mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes = mysql-nouseindex.log
#innodb
innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_lock_wait_timeout = 120
#master & slave
binlog_format = row #row|mixed
gtid_mode = on
enforce-gtid-consistency = on
relay_log_recovery = 1
relay_log_info_repository = TABLE
master_info_repository = TABLE
log-slave-updates = off
expire_logs_days = 7
#master
server_id = 9
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
log-bin = mysql-bin
binlog-ignore-db = mysql
#slave
#server_id = 10
#innodb_flush_log_at_trx_commit = 2
#sync_binlog = 500
#slave-skip-errors = 1062
#replicate-ignore-db = mysql
-
重启容器
docker restart mysql
-
进入主库mysql容器内部,配置
docker exec -it mysql /bin/bash
mysql -uroot -p123456
create user 'slave1'@'%' identified by '123456';
grant replication slave on *.* to 'slave1'@'%';
flush privileges;
-
进入从库mysql容器内部,配置
docker exec -it mysql /bin/bash
mysql -uroot -p123456
change master to master_host='你的IP', master_port=3306, master_user='slave1', master_password='123456', master_auto_position=1;
start slave;