一、基本情况
在此前已经通过传统方式实现MySQL的主从复制,先通过容器方式实现。
Master-1:192.168.1.137
Master-2: 192.168.1.138
docker容器的安装:略。
二、安装及配置Master-1
1、创建挂载目录
mkdir -p usr/local/mysql-master/logmkdir -p usr/local/mysql-master/datamkdir -p /usr/local/mysql-master/conf
2、拉取镜像
docker pull mysql:5.7.34
3、修改mysql配置文件
vim /usr/local/mysql-master/conf/my.cnf
[mysqld]server_id = 137log-bin=mysql-binport = 3306auto_increment_increment=2auto_increment_offset=1gtid_mode = onenforce-gtid-consistency=truecharacter-set-server = utf8collation-server = utf8_general_cisql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZEROlower_case_table_names = 1transaction-isolation = READ-COMMITTEDdefault-time_zone = '+8:00'log_timestamps = SYSTEM###############################innodb_buffer_pool_size = 2Ginnodb_log_file_size=128Minnodb_log_files_in_group=4innodb_log_buffer_size=16Minnodb_write_io_threads = 8innodb_read_io_threads = 8innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120innodb-file-per-table=1auto_increment_increment=1auto_increment_offset=1connect_timeout=10group_concat_max_len=1024innodb_thread_concurrency=0innodb_thread_sleep_delay=10000innodb_write_io_threads=12interactive_timeout=28800lock_wait_timeout=31536000long_query_time=10.000000low_priority_updates=OFFmax_allowed_packet=500Mmax_connect_errors=999999999max_connections=1600max_length_for_sort_data=1024max_prepared_stmt_count=16382max_user_connections=0net_read_timeout=30net_retry_count=10net_write_timeout=60ngram_token_size=2open_files_limit=102400performance_schema=OFFquery_alloc_block_size=8192query_cache_limit=1048576query_cache_size=0query_cache_type=OFFquery_cache_wlock_invalidate=OFFquery_prealloc_size=8192slow_launch_time=2table_definition_cache=768table_open_cache=512table_open_cache_instances=16thread_cache_size=512tmp_table_size=1073741824wait_timeout=2147483interactive_timeout=31536000explicit_defaults_for_timestamp = truelog-bin-trust-function-creators = 1
4、重启并创建复制账号
# mysql -uroot -p123456 -P3307 -h192.168.1.137mysql> CREATE USER 'sync'@'%' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync'@'%';Query OK, 0 rows affected (0.00 sec)
三、安装及配置Master-2
1、创建挂载目录及拉取镜像:略。
2、修改mysql配置文件
[mysqld]server_id = 138log-bin=mysql-binauto_increment_increment=2# 生成主键从2开始auto_increment_offset=2gtid_mode = onenforce-gtid-consistency=truecharacter-set-server = utf8collation-server = utf8_general_cisql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZEROlower_case_table_names = 1transaction-isolation = READ-COMMITTEDdefault-time_zone = '+8:00'log_timestamps = SYSTEM###############################innodb_buffer_pool_size = 2Ginnodb_log_file_size=128Minnodb_log_files_in_group=4innodb_log_buffer_size=16Minnodb_write_io_threads = 8innodb_read_io_threads = 8innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120innodb-file-per-table=1auto_increment_increment=1auto_increment_offset=1connect_timeout=10group_concat_max_len=1024innodb_thread_concurrency=0innodb_thread_sleep_delay=10000innodb_write_io_threads=12interactive_timeout=28800lock_wait_timeout=31536000long_query_time=10.000000low_priority_updates=OFFmax_allowed_packet=500Mmax_connect_errors=999999999max_connections=1600max_length_for_sort_data=1024max_prepared_stmt_count=16382max_user_connections=0net_read_timeout=30net_retry_count=10net_write_timeout=60ngram_token_size=2open_files_limit=102400performance_schema=OFFquery_alloc_block_size=8192query_cache_limit=1048576query_cache_size=0query_cache_type=OFFquery_cache_wlock_invalidate=OFFquery_prealloc_size=8192slow_launch_time=2table_definition_cache=768table_open_cache=512table_open_cache_instances=16thread_cache_size=512tmp_table_size=1073741824wait_timeout=2147483interactive_timeout=31536000explicit_defaults_for_timestamp = truelog-bin-trust-function-creators = 1
3、重启并创建复制账号
# mysql -uroot -p123456 -P3307 -h192.168.1.138mysql> CREATE USER 'sync'@'%' IDENTIFIED BY '123456';Query OK, 0 rows affected (0.00 sec)mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'sync'@'%';Query OK, 0 rows affected (0.00 sec)
四、Master互相建立复制关系
俩台数据库配置一样
修改对应命令中的IP地址和数据库端口号即可。
flush logs;reset master;stop slave;change master to-> master_host='192.168.1.137',-> master_port=3307,-> master_user='sync',-> master_password='123456',-> master_auto_position = 1;Query OK, 0 rows affected, 1 warning (0.01 sec)start slave;show slave status \G

五、双Master复制验证与测试
在Master-1上新建数据库为solar的库,并导入sql;
同时观察到Master-2上数据可以实时进行同步。
同理,在Master-2上执行增加、删除、修改,验证效果一样。

文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




