mysql8 MGR集群部署

2024-03-06 09:28
文章标签 部署 集群 mysql8 mgr

本文主要是介绍mysql8 MGR集群部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

服务器环境

系统主机名IP
CentOS 7.9mgr-node01192.168.200.31
CentOS 7.9mgr-node02192.168.200.32
CentOS 7.9mgr-node03192.168.200.33

mysql8安装

tar zxvf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar.gzrpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64rpm -ivh mysql-community-common-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.19-1.el7.x86_64.rpm --nodeps --forcemkdir -p /data/mysql/data /data/mysql/mysql-files /data/mysql/mysql-keyring
chown -R mysql:mysql /data/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql-files
rm -rf /var/lib/mysql-keyring
ln -s /data/mysql/data /var/lib/mysql
ln -s /data/mysql/mysql-files /var/lib/mysql-files
ln -s /data/mysql/mysql-keyring /var/lib/mysql-keyring

修改配置文件my.cnf

192.168.200.31

cat > /etc/my.cnf << EOF
[mysqld]
port=3308
default-time-zone='+08:00' 
server-id=31
log-bin=mysql-bin
binlog_format=row
default-authentication-plugin=mysql_native_passwordskip-name-resolve # 禁用DNS解析,加快IP方式的连接auto-increment-increment=1
auto-increment-offset=1plugin_dir=/usr/lib64/mysql/plugin/gtid-mode=on # 开启gtid模式
enforce-gtid-consistency=1 #开启gtid安全限制
report_host=192.168.200.31#MGR使用乐观锁,所以官网建议隔离级别是RC,减少锁粒度
transaction_isolation = READ-COMMITTED
#因为集群会在故障恢复时互相检查binlog的数据,#所以需要记录下集群内其他服务器发过来已经执行过的binlog,按GTID来区分是否执行过.
log-slave-updates = 1#binlog校验规则,5.6之后的高版本是CRC32,低版本都是NONE,但是MGR要求使用NONE
binlog_checksum = NONE#基于安全的考虑,MGR集群要求复制模式要改成slave记录记录到表中,不然就报错
master_info_repository = TABLE#同上配套
relay_log_info_repository = TABLE#组复制设置#记录事务的算法,官网建议设置该参数使用 XXHASH64 算法
transaction_write_set_extraction = XXHASH64#primary节点到secondary节点的请求是否为基于RSA密钥对的密码交换
loose-group_replication_recovery_get_public_key=on# 组恢复时应用ssl
loose-group_replication_recovery_use_ssl=on#相当于此GROUP的名字,是UUID值,不能和集群内其他GTID值的UUID混用,可用uuidgen来生成一个新的,
#主要是用来区分整个内网里边的各个不同的GROUP,而且也是这个group内的GTID值的UUID
loose-group_replication_group_name = '2d837649-b362-4ed3-9aa8-9f3292b2812f'#IP地址白名单,默认只添加127.0.0.1,不会允许来自外部主机的连接,按需安全设置
loose-group_replication_ip_whitelist = '127.0.0.1/8,192.168.200.0/24'#是否随服务器启动而自动启动组复制,不建议直接启动,怕故障恢复时有扰乱数据准确性的特殊情况
loose-group_replication_start_on_boot = OFF#本地MGR的IP地址和端口,host:port,是MGR的端口,不是数据库的端口
loose-group_replication_local_address = '192.168.200.31:24901'#需要接受本MGR实例控制的服务器IP地址和端口,是MGR的端口,不是数据库的端口
loose-group_replication_group_seeds = '192.168.200.31:24901,192.168.200.32:24901,192.168.200.33:24901'#开启引导模式,添加组成员,用于第一次搭建MGR或重建MGR的时候使用,只需要在集群内的其中一台开启,
loose-group_replication_bootstrap_group = OFF#是否启动单主模式,如果启动,则本实例是主库,提供读写,其他实例仅提供读,如果为off就是多主模式了
loose-group_replication_single_primary_mode = ON#多主模式下,强制检查每一个实例是否允许该操作,如果不是多主,可以关闭
loose-group_replication_enforce_update_everywhere_checks = offdatadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pidlog-error=/var/lib/mysql/mysqld.log
slow_query_log = 0
long_query_time = 2
slow_query_log_file = /var/lib/mysql/mysql-slow.logcharacter-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'max_connections = 1024
max_connect_errors = 6000open_files_limit = 10000
table_open_cache = 128max_allowed_packet = 200M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 64
key_buffer_size = 4M
ft_min_word_len = 4performance_schema = 0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
skip-external-locking 
default-storage-engine = InnoDB 
innodb_file_per_table = 1innodb_open_files = 500innodb_buffer_pool_size = 6G
innodb_buffer_pool_chunk_size = 128M
innodb_buffer_pool_instances = 16innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120 
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 7200
wait_timeout = 86400[client]
default-character-set = utf8mb4
[mysql]
socket=/var/lib/mysql/mysql.sock
default-character-set = utf8mb4EOF

192.168.200.32

cat > /etc/my.cnf << EOF
[mysqld]
port=3308
default-time-zone='+08:00' 
server-id=32
log-bin=mysql-bin
binlog_format=row
default-authentication-plugin=mysql_native_passwordskip-name-resolve # 禁用DNS解析,加快IP方式的连接auto-increment-increment=1
auto-increment-offset=1plugin_dir=/usr/lib64/mysql/plugin/gtid-mode=on # 开启gtid模式
enforce-gtid-consistency=1 #开启gtid安全限制
report_host=192.168.200.32#MGR使用乐观锁,所以官网建议隔离级别是RC,减少锁粒度
transaction_isolation = READ-COMMITTED
#因为集群会在故障恢复时互相检查binlog的数据,#所以需要记录下集群内其他服务器发过来已经执行过的binlog,按GTID来区分是否执行过.
log-slave-updates = 1#binlog校验规则,5.6之后的高版本是CRC32,低版本都是NONE,但是MGR要求使用NONE
binlog_checksum = NONE#基于安全的考虑,MGR集群要求复制模式要改成slave记录记录到表中,不然就报错
master_info_repository = TABLE#同上配套
relay_log_info_repository = TABLE#组复制设置#记录事务的算法,官网建议设置该参数使用 XXHASH64 算法
transaction_write_set_extraction = XXHASH64#primary节点到secondary节点的请求是否为基于RSA密钥对的密码交换
loose-group_replication_recovery_get_public_key=on# 组恢复时应用ssl
loose-group_replication_recovery_use_ssl=on#相当于此GROUP的名字,是UUID值,不能和集群内其他GTID值的UUID混用,可用uuidgen来生成一个新的,
#主要是用来区分整个内网里边的各个不同的GROUP,而且也是这个group内的GTID值的UUID
loose-group_replication_group_name = '2d837649-b362-4ed3-9aa8-9f3292b2812f'#IP地址白名单,默认只添加127.0.0.1,不会允许来自外部主机的连接,按需安全设置
loose-group_replication_ip_whitelist = '127.0.0.1/8,192.168.200.0/24'#是否随服务器启动而自动启动组复制,不建议直接启动,怕故障恢复时有扰乱数据准确性的特殊情况
loose-group_replication_start_on_boot = OFF#本地MGR的IP地址和端口,host:port,是MGR的端口,不是数据库的端口
loose-group_replication_local_address = '192.168.200.32:24901'#需要接受本MGR实例控制的服务器IP地址和端口,是MGR的端口,不是数据库的端口
loose-group_replication_group_seeds = '192.168.200.31:24901,192.168.200.32:24901,192.168.200.33:24901'#开启引导模式,添加组成员,用于第一次搭建MGR或重建MGR的时候使用,只需要在集群内的其中一台开启,
loose-group_replication_bootstrap_group = OFF#是否启动单主模式,如果启动,则本实例是主库,提供读写,其他实例仅提供读,如果为off就是多主模式了
loose-group_replication_single_primary_mode = ON#多主模式下,强制检查每一个实例是否允许该操作,如果不是多主,可以关闭
loose-group_replication_enforce_update_everywhere_checks = offdatadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pidlog-error=/var/lib/mysql/mysqld.log
slow_query_log = 0
long_query_time = 2
slow_query_log_file = /var/lib/mysql/mysql-slow.logcharacter-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'max_connections = 1024
max_connect_errors = 6000open_files_limit = 10000
table_open_cache = 128max_allowed_packet = 200M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 64
key_buffer_size = 4M
ft_min_word_len = 4performance_schema = 0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
skip-external-locking 
default-storage-engine = InnoDB 
innodb_file_per_table = 1innodb_open_files = 500innodb_buffer_pool_size = 6G
innodb_buffer_pool_chunk_size = 128M
innodb_buffer_pool_instances = 16innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120 
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 7200
wait_timeout = 86400[client]
default-character-set = utf8mb4
[mysql]
socket=/var/lib/mysql/mysql.sock
default-character-set = utf8mb4EOF

192.168.200.33

cat > /etc/my.cnf << EOF
[mysqld]
port=3308
default-time-zone='+08:00' 
server-id=33
log-bin=mysql-bin
binlog_format=row
default-authentication-plugin=mysql_native_passwordskip-name-resolve # 禁用DNS解析,加快IP方式的连接auto-increment-increment=1
auto-increment-offset=1plugin_dir=/usr/lib64/mysql/plugin/gtid-mode=on # 开启gtid模式
enforce-gtid-consistency=1 #开启gtid安全限制
report_host=192.168.200.33#MGR使用乐观锁,所以官网建议隔离级别是RC,减少锁粒度
transaction_isolation = READ-COMMITTED
#因为集群会在故障恢复时互相检查binlog的数据,#所以需要记录下集群内其他服务器发过来已经执行过的binlog,按GTID来区分是否执行过.
log-slave-updates = 1#binlog校验规则,5.6之后的高版本是CRC32,低版本都是NONE,但是MGR要求使用NONE
binlog_checksum = NONE#基于安全的考虑,MGR集群要求复制模式要改成slave记录记录到表中,不然就报错
master_info_repository = TABLE#同上配套
relay_log_info_repository = TABLE#组复制设置#记录事务的算法,官网建议设置该参数使用 XXHASH64 算法
transaction_write_set_extraction = XXHASH64#primary节点到secondary节点的请求是否为基于RSA密钥对的密码交换
loose-group_replication_recovery_get_public_key=on# 组恢复时应用ssl
loose-group_replication_recovery_use_ssl=on#相当于此GROUP的名字,是UUID值,不能和集群内其他GTID值的UUID混用,可用uuidgen来生成一个新的,
#主要是用来区分整个内网里边的各个不同的GROUP,而且也是这个group内的GTID值的UUID
loose-group_replication_group_name = '2d837649-b362-4ed3-9aa8-9f3292b2812f'#IP地址白名单,默认只添加127.0.0.1,不会允许来自外部主机的连接,按需安全设置
loose-group_replication_ip_whitelist = '127.0.0.1/8,192.168.200.0/24'#是否随服务器启动而自动启动组复制,不建议直接启动,怕故障恢复时有扰乱数据准确性的特殊情况
loose-group_replication_start_on_boot = OFF#本地MGR的IP地址和端口,host:port,是MGR的端口,不是数据库的端口
loose-group_replication_local_address = '192.168.200.33:24901'#需要接受本MGR实例控制的服务器IP地址和端口,是MGR的端口,不是数据库的端口
loose-group_replication_group_seeds = '192.168.200.31:24901,192.168.200.32:24901,192.168.200.33:24901'#开启引导模式,添加组成员,用于第一次搭建MGR或重建MGR的时候使用,只需要在集群内的其中一台开启,
loose-group_replication_bootstrap_group = OFF#是否启动单主模式,如果启动,则本实例是主库,提供读写,其他实例仅提供读,如果为off就是多主模式了
loose-group_replication_single_primary_mode = ON#多主模式下,强制检查每一个实例是否允许该操作,如果不是多主,可以关闭
loose-group_replication_enforce_update_everywhere_checks = offdatadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pidlog-error=/var/lib/mysql/mysqld.log
slow_query_log = 0
long_query_time = 2
slow_query_log_file = /var/lib/mysql/mysql-slow.logcharacter-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'max_connections = 1024
max_connect_errors = 6000open_files_limit = 10000
table_open_cache = 128max_allowed_packet = 200M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 64
key_buffer_size = 4M
ft_min_word_len = 4performance_schema = 0
explicit_defaults_for_timestamp=true
lower_case_table_names=1
skip-external-locking 
default-storage-engine = InnoDB 
innodb_file_per_table = 1innodb_open_files = 500innodb_buffer_pool_size = 6G
innodb_buffer_pool_chunk_size = 128M
innodb_buffer_pool_instances = 16innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120 
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 8M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 7200
wait_timeout = 86400[client]
default-character-set = utf8mb4
[mysql]
socket=/var/lib/mysql/mysql.sock
default-character-set = utf8mb4EOF
启动mysql服务
systemctl start mysqld
systemctl enable mysqld

防火墙放行(所有节点操作)

firewall-cmd --zone=public --add-port={3308,24901}/tcp --permanent&&firewall-cmd --reload

修改mysql初始账号权限(所有节点操作)

alter user 'root'@'localhost' identified with mysql_native_password by "D4vh3s1#Hmb70ppcI2Q8";
flush privileges;

创建主从同步账号(所有节点操作)

create user 'repl'@'192.168.200.%' identified with mysql_native_password by 'DS6aWh2l9NcS!E#@sJEn';GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.200.%';reset master;

安装插件(所有节点操作)

# mysql客户端操作
install PLUGIN group_replication SONAME 'group_replication.so';#查看插件是否安装成功
show plugins;
select * from information_schema.plugins where plugin_name = 'group_replication'\G;

MGR单主模式

在主节点启动引导
SET GLOBAL group_replication_bootstrap_group = ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group = OFF;# 查看组复制状态
SELECT * FROM performance_schema.replication_group_members;在从节点执行
CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='DS6aWh2l9NcS!E#@sJEn' FOR CHANNEL 'group_replication_recovery';START GROUP_REPLICATION;#查看组复制状态
SELECT * FROM performance_schema.replication_group_members;

主挂了如何恢复

# 第一次需要如此操作
STOP GROUP_REPLICATION;CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='DS6aWh2l9NcS!E#@sJEn' FOR CHANNEL 'group_replication_recovery';START GROUP_REPLICATION;# 后续恢复执行START GROUP_REPLICATION;

这篇关于mysql8 MGR集群部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779575

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

HDFS—集群扩容及缩容

白名单:表示在白名单的主机IP地址可以,用来存储数据。 配置白名单步骤如下: 1)在NameNode节点的/opt/module/hadoop-3.1.4/etc/hadoop目录下分别创建whitelist 和blacklist文件 (1)创建白名单 [lytfly@hadoop102 hadoop]$ vim whitelist 在whitelist中添加如下主机名称,假如集群正常工作的节

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起

Solr部署如何启动

Solr部署如何启动 Posted on 一月 10, 2013 in:  Solr入门 | 评论关闭 我刚接触solr,我要怎么启动,这是群里的朋友问得比较多的问题, solr最新版本下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 1、准备环境 建立一个solr目录,把solr压缩包example目录下的内容复制

Spring Roo 实站( 一 )部署安装 第一个示例程序

转自:http://blog.csdn.net/jun55xiu/article/details/9380213 一:安装 注:可以参与官网spring-roo: static.springsource.org/spring-roo/reference/html/intro.html#intro-exploring-sampleROO_OPTS http://stati

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww