MySQL-group-replication 配置步骤(推荐)
数据库 / 管理员 发布于 6年前 187
MySQL-Group-Replication 是mysql-5.7.17版本开发出来的新特性;它在master-slave 之间实现了强一致性,
但是就目前来说主要是性能不太好。
【1】确定当前的mysql数据库版本为5.7.17及以上
/usr/local/mysql/bin/mysqld --version/usr/local/mysql/bin/mysqld Ver 5.7.17 for linux-glibc2.5 on x86_64 (MySQL Community Server (GPL))
【2】实验环境为一台主机上安装3台mysql,它们三个组成一个group-replication 组
/tmp/4406.cnf 内容如下:
[mysqld]####: for globaluser =jianglexing # mysqlbasedir =/usr/local/mysql # /usr/local/mysql/datadir =/tmp/4406/ # /usr/local/mysql/dataserver_id =4406# 0port =4406# 3306socket =/tmp/4406/mysql.sock # /tmp/mysql.sockauto_increment_increment =1# 1auto_increment_offset =1# 1lower_case_table_names =1# 0secure_file_priv =# null####: for binlogbinlog_format =row# rowlog_bin =mysql-bin # offbinlog_rows_query_log_events =on# offlog_slave_updates =on# offexpire_logs_days =4# 0binlog_cache_size =32768# 32768(32k)binlog_checksum =none# CRC32sync_binlog =1# 1####: for error-loglog_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err####: for slow query log####: for gtidgtid_mode =on# offenforce_gtid_consistency =on# off####: for replicationmaster_info_repository =table# filerelay_log_info_repository =table# file####: for group replicationtransaction_write_set_extraction =XXHASH64 # offloose-group_replication_group_name ="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # loose-group_replication_start_on_boot =off# offloose-group_replication_local_address ="127.0.0.1:24901" #loose-group_replication_group_seeds ="127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"loose-group_replication_bootstrap_group =off# off####: for innodbdefault_storage_engine =innodb# innodbdefault_tmp_storage_engine =innodb# innodbinnodb_data_file_path =ibdata1:12M:autoextend # ibdata1:12M:autoextendinnodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextendinnodb_log_group_home_dir =./# ./innodb_log_files_in_group =2# 2innodb_log_file_size =48M# 50331648(48M)innodb_file_format =Barracuda # Barracudainnodb_file_per_table =on # oninnodb_page_size =16k# 16384(16k)innodb_thread_concurrency =0# 0innodb_read_io_threads =4# 4innodb_write_io_threads =4# 4innodb_purge_threads =4# 4innodb_print_all_deadlocks =on# offinnodb_deadlock_detect =on# oninnodb_lock_wait_timeout =50# 50innodb_spin_wait_delay =6# 6innodb_autoinc_lock_mode =2# 1innodb_stats_persistent =on# oninnodb_stats_persistent_sample_pages =20# 20innodb_adaptive_hash_index =on# oninnodb_change_buffering =all# allinnodb_change_buffer_max_size =25# 25innodb_flush_neighbors =1# 1innodb_flush_method =O_DIRECT # innodb_doublewrite =on# oninnodb_log_buffer_size =16M# 16777216(16M)innodb_flush_log_at_timeout =1# 1innodb_flush_log_at_trx_commit =1# 1autocommit =1# 1[client]auto-rehash
/tmp/5506.cnf 内容如下:
[mysqld]####: for globaluser =jianglexing # mysqlbasedir =/usr/local/mysql # /usr/local/mysql/datadir =/tmp/5506 # /usr/local/mysql/dataserver_id =5506# 0port =5506# 3306socket =/tmp/5506/mysql.sock # /tmp/mysql.sockauto_increment_increment =1# 1auto_increment_offset =1# 1lower_case_table_names =1# 0secure_file_priv =# null####: for binlogbinlog_format =row# rowlog_bin =mysql-bin # offbinlog_rows_query_log_events =on# offlog_slave_updates =on# offexpire_logs_days =4# 0binlog_cache_size =32768# 32768(32k)binlog_checksum =none# CRC32sync_binlog =1# 1####: for error-loglog_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err####: for slow query log####: for gtidgtid_mode =on# offenforce_gtid_consistency =on# off####: for replicationmaster_info_repository =table# filerelay_log_info_repository =table# file####: for group replicationtransaction_write_set_extraction =XXHASH64 # offloose-group_replication_group_name ="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # loose-group_replication_start_on_boot =off# offloose-group_replication_local_address ="127.0.0.1:24902" #loose-group_replication_group_seeds ="127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"loose-group_replication_bootstrap_group =off# off####: for innodbdefault_storage_engine =innodb# innodbdefault_tmp_storage_engine =innodb# innodbinnodb_data_file_path =ibdata1:12M:autoextend # ibdata1:12M:autoextendinnodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextendinnodb_log_group_home_dir =./# ./innodb_log_files_in_group =2# 2innodb_log_file_size =48M# 50331648(48M)innodb_file_format =Barracuda # Barracudainnodb_file_per_table =on # oninnodb_page_size =16k# 16384(16k)innodb_thread_concurrency =0# 0innodb_read_io_threads =4# 4innodb_write_io_threads =4# 4innodb_purge_threads =4# 4innodb_print_all_deadlocks =on# offinnodb_deadlock_detect =on# oninnodb_lock_wait_timeout =50# 50innodb_spin_wait_delay =6# 6innodb_autoinc_lock_mode =2# 1innodb_stats_persistent =on# oninnodb_stats_persistent_sample_pages =20# 20innodb_adaptive_hash_index =on# oninnodb_change_buffering =all# allinnodb_change_buffer_max_size =25# 25innodb_flush_neighbors =1# 1innodb_flush_method =O_DIRECT # innodb_doublewrite =on# oninnodb_log_buffer_size =16M# 16777216(16M)innodb_flush_log_at_timeout =1# 1innodb_flush_log_at_trx_commit =1# 1autocommit =1# 1
/tmp/6606.cnf 内容如下:
[mysqld]####: for globaluser =jianglexing # mysqlbasedir =/usr/local/mysql # /usr/local/mysql/datadir =/tmp/6606/ # /usr/local/mysql/dataserver_id =6606# 0port =6606# 3306socket =/tmp/6606/mysql.sock # /tmp/mysql.sockauto_increment_increment =1# 1auto_increment_offset =1# 1lower_case_table_names =1# 0secure_file_priv =# null####: for binlogbinlog_format =row# rowlog_bin =mysql-bin # offbinlog_rows_query_log_events =on# offlog_slave_updates =on# offexpire_logs_days =4# 0binlog_cache_size =32768# 32768(32k)binlog_checksum =none# CRC32sync_binlog =1# 1####: for error-loglog_error =mysql-err.log # /usr/local/mysql/data/localhost.localdomain.err####: for slow query log####: for gtidgtid_mode =on# offenforce_gtid_consistency =on# off####: for replicationmaster_info_repository =table# filerelay_log_info_repository =table# file####: for group replicationtransaction_write_set_extraction =XXHASH64 # offloose-group_replication_group_name ="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # loose-group_replication_start_on_boot =off# offloose-group_replication_local_address ="127.0.0.1:24903" #loose-group_replication_group_seeds ="127.0.0.1:24901,127.0.0.1:24902,127.0.0.1:24903"loose-group_replication_bootstrap_group =off# off####: for innodbdefault_storage_engine =innodb# innodbdefault_tmp_storage_engine =innodb# innodbinnodb_data_file_path =ibdata1:12M:autoextend # ibdata1:12M:autoextendinnodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextendinnodb_log_group_home_dir =./# ./innodb_log_files_in_group =2# 2innodb_log_file_size =48M# 50331648(48M)innodb_file_format =Barracuda # Barracudainnodb_file_per_table =on # oninnodb_page_size =16k# 16384(16k)innodb_thread_concurrency =0# 0innodb_read_io_threads =4# 4innodb_write_io_threads =4# 4innodb_purge_threads =4# 4innodb_print_all_deadlocks =on# offinnodb_deadlock_detect =on# oninnodb_lock_wait_timeout =50# 50innodb_spin_wait_delay =6# 6innodb_autoinc_lock_mode =2# 1innodb_stats_persistent =on# oninnodb_stats_persistent_sample_pages =20# 20innodb_adaptive_hash_index =on# oninnodb_change_buffering =all# allinnodb_change_buffer_max_size =25# 25innodb_flush_neighbors =1# 1innodb_flush_method =O_DIRECT # innodb_doublewrite =on# oninnodb_log_buffer_size =16M# 16777216(16M)innodb_flush_log_at_timeout =1# 1innodb_flush_log_at_trx_commit =1# 1autocommit =1# 1
【3】初始化三个数据库实例
cd /usr/local/mysql/./bin/mysqld --defautls-file=/tmp/4406.cnf --datadir=/tmp/4406 --initialize-insecrue./bin/mysqld --defautls-file=/tmp/5506.cnf --datadir=/tmp/5506 --initialize-insecrue./bin/mysqld --defautls-file=/tmp/6606.cnf --datadir=/tmp/6606 --initialize-insecrue
【4】配置group-replication 的初始实例
/usr/local/mysql/bin/mysqld --defaults-file=/tmp/4406.cnf &
mysql -h127.0.0.1 -uroot -P4406-- 增加用户 set sql_log_bin=0; create user rpl_user@'%' identified by '123456'; grant replication slave,replication client on *.* to rpl_user@'%'; create user rpl_user@'127.0.0.1' identified by '123456'; grant replication slave,replication client on *.* to rpl_user@'127.0.0.1'; create user rpl_user@'localhost' identified by '123456'; grant replication slave,replication client on *.* to rpl_user@'localhost'; set sql_log_bin=1;-- 增加复制凭证 change master to master_user='rpl_user', master_password='123456' for channel 'group_replication_recovery';-- 安装组复制物件 install plugin group_replication soname 'group_replication.so';-- 启动组复制 set global group_replication_bootstrap_group=on; start group_replication; set global group_replication_bootstrap_group=off;
【5】5506 实例的配置过程如下:
/usr/local/mysql/bin/mysqld --defaults-file=/tmp/5506.cnf &
mysql -h127.0.0.1 -uroot -P5506-- 增加用户 set sql_log_bin=0; create user rpl_user@'%' identified by '123456'; grant replication slave,replication client on *.* to rpl_user@'%'; create user rpl_user@'127.0.0.1' identified by '123456'; grant replication slave,replication client on *.* to rpl_user@'127.0.0.1'; create user rpl_user@'localhost' identified by '123456'; grant replication slave,replication client on *.* to rpl_user@'localhost'; set sql_log_bin=1;-- 增加复制凭证 change master to master_user='rpl_user', master_password='123456' for channel 'group_replication_recovery';-- 安装组复制物件 install plugin group_replication soname 'group_replication.so';-- 启动组复制 start group_replication; # 注意这里不是初始化了,只要加入就行
【6】6606 实例的操作与5506的操作一样,这样group replication 的配置就完成了。
以上这篇MySQL-group-replication 配置步骤(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号