您的位置:首页 > 运维架构 > Docker

docker安装mysql 5.7后配置主从同步

2019-07-22 17:08 302 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/a2589293499/article/details/96862612

接上篇https://blog.csdn.net/a2589293499/article/details/96840761

  • 新建my.cnf文件,内容如下,放入/mysql-master/conf 目录。

[code][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
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
  • 注释master节点内容并取消注释slave节点内容,放入 /mysql-slave/conf目录

[code][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
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-master

docker restart mysql-slave

  • 进入mysql-master容器内部,配置主从

docker exec -it mysql-master /bin/bash

mysql -uroot -p123456

create user 'slave1'@'%' identified by '123456';

grant replication slave on *.* to 'slave1'@'%';

flush privileges;

  • 进入mysql-slave容器内部,配置主从

docker exec -it mysql-master /bin/bash

mysql -uroot -p123456

change master to master_host='你的IP', master_port=3307, master_user='slave1', master_password='123456', master_auto_position=1;

start slave;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: