MySQL MGR提供了一个高可用性、高弹性、可靠的 MySQL 服务。
部署环境: ubuntu 18.04 * 3台 + mysql 5.7.32 + VMware + NAT网络
MySQL基础服务部署 在配置MySQL MGR之前,需要先在服务器上部署好“单机版”MySQL服务。
MySQL部署快速命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 shell> apt install libaio1 shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql shell> cd /usr/local shell> tar zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz shell> mv mysql-5.7.32-linux-glibc2.12-x86_64 mysql shell> cd mysql shell> mkdir mysql-files shell> chmod 750 mysql-files shell> cd .. shell> chown -R mysql:mysql mysql shell> bin/mysqld --initialize --user=mysql shell> bin/mysql_ssl_rsa_setup shell> bin/mysqld_safe --user=mysql &
密码修改:
1 2 mysql> set password= password('yourpassword' ); mysql> flush privileges;
MySQL MGR配置 1.配置my.cnf和hosts 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 shell> cat /etc/my.cnf [mysqld] character-set-server=utf8mb4 lower_case_table_names=1 disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY" server_id=1 gtid_mode=ON enforce_gtid_consistency=ON master_info_repository=TABLE relay_log_info_repository=TABLE binlog_checksum=NONE log_slave_updates=ON log_bin=binlog binlog_format=ROW plugin_load_add='group_replication.so' transaction_write_set_extraction=XXHASH64 group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" group_replication_start_on_boot=off group_replication_local_address= "master:33061" group_replication_group_seeds= "master:33061,slave1:33061,slave2:33061" group_replication_bootstrap_group=off shell> cat /etc/hosts 127.0.0.1 localhost 192.168.61.128 master 192.168.61.129 slave1 192.168.61.130 slave2
修改完成后,重启服务器。
2.启动MGR服务 先启动master服务:
1 2 3 4 mysql> set global group_replication_bootstrap_group= ON ; mysql> start group_replication; mysql> set global group_replication_bootstrap_group= OFF;
再启用slave服务:
1 2 mysql> start group_replication;
查看服务状态:
1 2 3 4 5 6 7 8 9 mysql> select * from performance_schema.replication_group_members; + | CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | + | group_replication_applier | 035 d4863-1 a5b-11 eb- b2f8-000 c299b693b | master | 3306 | ONLINE | | group_replication_applier | 612612e0 -1 a59-11 eb-9 ab6-000 c29912f8c | slave1 | 3306 | ONLINE | | group_replication_applier | e781b3c8-1 a57-11 eb-8908 -000 c29396c65 | slave2 | 3306 | ONLINE | + 3 rows in set (0.00 sec)
只有’MEMBER_STATE’全部为’ONLINE’,才说明启动正常,其它均为异常。 异常时可以去查看mysql的错误日志,默认是在/usr/local/mysql/data/hosts.err.
至此,MGR服务就已经搭建完成了!
Ps:
配置了/etc/hosts需要重启服务器以使host生效,否则启动mgr时会无法解析地址。
如果以其它配置启动过mgr服务,可能会导致mgr无法启动问题,系统提示“ERROR 3092 (HY000): The server is not configured properly to be an active member of the group. Please see more details on error log.”,此时在mysql命令行执行下“reset master”命令即可解决。
需先创建数据库,再启动mgr服务,否则会引起报错“ERROR 1290 (HY000): The MySQL server is running with the –super-read-only option so it cannot execute this statement”。
mgr需要每张表都要有primary key。