基于GTID的半同步主从复制MySQL高性能集群

目录

项目名称

项目环境

项目描述

项目步骤

1.规划设计整个集群的网络拓扑结构,按照规划为每台服务器配好IP 

2.在中控机上部署ansible服务,通过SSH与MySQL集群建立免密通道,编写playbook在4台主从复制集群服务器上二进制安装MySQL

安装ansible并与需要安装MySQL的6台服务器建立免密通道

使用ansible部署MySQL集群

3.修改配置文件搭建半同步主从复制并启用GTID功能,形成1台master,3台slave(2台GTID半同步服务器,1台延迟备份服务器)集群

搭建半同步主从复制

在主从服务器上同步初始数据

配置并启用GTID功能

 实现延迟备份

4.在master服务器与ansible服务器上搭建rsync+sersync文件实现异地备份与数据的实时同步,保证数据的安全性与完整性

ansible备份服务器操作

         数据源master服务器操作

 5.使用ansible在另外两台服务器上安装mysqlrouter,在master服务器上创建2个读写账号分别进行不同功能的授权并配置不同端口,实现数据的读写分离

安装部署两台mysqlrouter

实现读写分离

6.在2台mysqlrouter服务器上配置并运行keepalived软件,实现双VIP架构,避免资源闲置,提高数据库集群的响应能力

配置keepalived,实现双VIP架构 

7.部署Zabbix监控软件,在监控平台上添加相关的服务器和监控项

8.在集群外的服务器上使用sysbench软件对集群进行压力测试,测试整个MySQL集群的性能

安装sysbench软件

进行压力测试

项目心得

项目中需注意的问题


项目名称

基于双VIP与GTID的半同步主从复制集群

项目环境

8台Centos7服务器、MySQL 5.7.40 、ansible 2.9.27、keepalived 1.3.5、sysbench 1.0.15、Zabbix 5.0

项目描述

在传统的MySQL主从复制中,引入GTID来进行主从间的数据同步,采用半同步主从复制模式。其中使用中间件mysqlrouter实现读写分离;利用keepalived搭建双VIP架构;通过ansible实现自动化运维,并使用Zabbix监控整个集群,保障集群服务器的正常运转;通过sysbench软件进行压力测试。搭建一个高可用实现主从复制与读写分离的MySQL集群。


项目步骤

1.规划设计整个集群的网络拓扑结构,按照规划为每台服务器配好IP 

基于GTID的半同步主从复制MySQL高性能集群_第1张图片

2.在中控机上部署ansible服务,通过SSH与MySQL集群建立免密通道,编写playbook在4台主从复制集群服务器上二进制安装MySQL

安装ansible并与需要安装MySQL的6台服务器建立免密通道

此步骤在搭建nginx的高可用web集群中已详细讲解,步骤相同,此处只需要修改相应的IP即可

搭建基于nginx(双机热备+keepalived)的高可用web集群项目_钰儿yu1228的博客-CSDN博客

使用ansible部署MySQL集群

编译安装MySQL,编写一键安装脚本如下:

[root@localhost ~]# vim onekey_install_mysql_binary_v3.sh 
 
echo  'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc
 
#复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld
cp  ../support-files/mysql.server   /etc/init.d/mysqld
 
#修改/etc/init.d/mysqld脚本文件里的datadir目录的值
sed  -i '70c  datadir=/data/mysql'  /etc/init.d/mysqld
 
#生成/etc/my.cnf配置文件
cat  >/etc/my.cnf  <
EOF
 
#修改内核的open file的数量
ulimit -n 1000000
#设置开机启动的时候也配置生效
echo "ulimit -n 1000000" >>/etc/rc.local
chmod +x /etc/rc.d/rc.local
 
 
#启动mysqld进程
service mysqld start
 
#将mysqld添加到linux系统里服务管理名单里
/sbin/chkconfig --add mysqld
#设置mysqld服务开机启动
/sbin/chkconfig mysqld on
 
#初次修改密码需要使用--connect-expired-password 选项
#-e 后面接的表示是在mysql里需要执行命令  execute 执行
#set password='123456#';  修改root用户的密码为123456#
mysql -uroot -p$tem_passwd --connect-expired-password   -e  "set password='123456#';"
 
 
#检验上一步修改密码是否成功,如果有输出能看到mysql里的数据库,说明成功。
mysql -uroot -p'123456#'  -e "show databases;"

使用ansible将脚本推送至主从复制服务器上,并执行安装脚本:

# 使用ansible将mysql源码传过去。
[root@ansible ansible]# ansible  mysql -m copy -a 'src=/ansible/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz dest=/mysql/'

#编写playbook
[root@ansible playbooks]# cat mysql_install.yaml 
- hosts: all
  remote_user: root
  tasks:
  - name: install MySQL
    script: /mysql/onekey_install_mysql.sh
#检查playbook的语法
[root@ansible playbooks]# ansible-playbook --syntax-check mysql_install.yaml
#执行playbook
[root@ansible playbooks]# ansible-playbook mysql_install.yaml

3.修改配置文件搭建半同步主从复制并启用GTID功能,形成1台master,3台slave(2台GTID半同步服务器,1台延迟备份服务器)集群

搭建半同步主从复制

配置master:

在master上安装配置半同步的插件:

root@(none) 21:24  mysql>INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

修改master的配置文件,打开二进制与半同步功能:

[root@master ~]# cat /etc/my.cnf
[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
port = 3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8mb4

#开启二进制文件
log_bin
server_id = 1
#开启半同步功能
rpl_semi_sync_master_timeout=1000
rpl_semi_sync_master_enabled=1
[mysql]
auto-rehash
prompt=\u@\d \R:\m  mysql>

#修改配置后重启mysql服务
[root@master ~]# service mysqld restart

配置slave:

在从3台服务器上配置安装半同步的插件:

root@(none) 21:33  mysql>INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

修改slave的配置文件,打开半同步功能:

[root@slave ~]# vim /etc/my.cnf
[mysqld]
auto-rehash
prompt=\u@\d \R:\m  mysql>
rpl_semi_sync_slave_enabled=1 #添加配置

#修改配置文件后重启服务
[root@slave ~]# service mysqld restart

在master和slave上执行SQL语句,查看半同步是否激活成功:

#在master上查看半同步功能是否开启
root@(none) 21:28  mysql>select plugin_name,plugin_status from information_schema.plugins where plugin_name like '%semi%';
+----------------------+---------------+
| plugin_name          | plugin_status |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE        |
+----------------------+---------------+
1 row in set (0.01 sec)

#在slave上查看半同步功能是否开启
root@(none) 21:35  mysql>select plugin_name,plugin_status from information_schema.plugins where plugin_name like '%semi%';
+----------------------+---------------+
| plugin_name          | plugin_status |
+----------------------+---------------+       |
| rpl_semi_sync_slave  | ACTIVE        |
+----------------------+---------------+
2 rows in set (0.01 sec)

master:

基于GTID的半同步主从复制MySQL高性能集群_第2张图片

 slave:

基于GTID的半同步主从复制MySQL高性能集群_第3张图片

在主从服务器上同步初始数据

导出master上的初始基础数据:

#清空二进制日志,重启服务
root@(none) 17:25  mysql>reset master;
#使用命令导出初始数据
[root@master ~]# mysqldump -uroot -p"Sanchuang123#" --all-databases >3_all_db.sql

使用ansible在slave服务器上导入基础数据:

#将导出文件推送至ansible服务器上
[root@master ~]# scp 3_all_db.sql [email protected]:/root
#使用ansible将文件推送至slave服务器上
[root@slave ~]# ansible all  -m copy -a "src=/root/3_all_db.sql dest=/root"

配置并启用GTID功能

打开主从服务器上的GTID功能,添加配置文件后,重启服务:

[root@master ~]# cat /etc/my.cnf
[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]

#开启gtid功能,添加配置
gtid-mode=ON    
enforce-gtid-consistency=ON   #添加两条开启GTID的配置
[mysql]
auto-rehash
prompt=\u@\d \R:\m  mysql>

#重启服务
[root@master ~]# service mysqld restart

在master服务器上新建授权用户,给slave来复制二进制日志 :

root@(none) 21:39  mysql>grant replication slave on *.* to 'lijun'@'192.168.81.%' identified by 'Sanchuang123#';

在slave上配置master info:

注意:为防止配置环境不纯洁导致IO线程不能正常启动,出现报错,需要先在slave上做清除记录的操作!!!

#清除二进制记录与master info的记录
root@(none) 14:39  mysql>reset master;
Query OK, 0 rows affected (0.01 sec)

root@(none) 14:40  mysql>stop slave;
Query OK, 0 rows affected (0.00 sec)

root@(none) 14:40  mysql>reset slave all;
Query OK, 0 rows affected (0.01 sec)

#配置master info
root@(none) 14:40  mysql>CHANGE MASTER TO MASTER_HOST='192.168.81.140',
    MASTER_USER='lijun',
    MASTER_PASSWORD='Sanchuang123#',
    MASTER_PORT=3306,
    MASTER_AUTO_POSITION=1;
Query OK, 0 rows affected, 2 warnings (0.02 sec)

root@(none) 14:41  mysql>start slave;
Query OK, 0 rows affected (0.00 sec)

检查slave的状态,查看GTID功能是否正常开启:

#IO线程与SQL线程若成功运行,表示配置成功
root@(none) 14:42  mysql>show slave status \G;
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
                Auto_Position: 1

验证GTID半同步主从复制效果:

在主服务器上删除两个数据库: 

基于GTID的半同步主从复制MySQL高性能集群_第4张图片

在从服务器上查看是否同步删除:

基于GTID的半同步主从复制MySQL高性能集群_第5张图片

 检查主从服务器上的GTID编号是否统一:

master:

 slave:

 实现延迟备份

在slave1上开启二进制和log_slave_updates功能,让SQL线程执行中继日志也产生二进制日志,实现延迟备份服务器可以从slave1上拿数据。

修改slave1的配置文件,并重启服务:

[root@master ~]# cat /etc/my.cnf

[mysqld]
#在配置文件中添加打开二进制日志的配置
log_bin
server_id = 2  #注意此id号需要各不相同

#添加配置
log_slave_updates=ON 

#重启服务
[root@slave ~]#service mysqld restart

基于GTID的半同步主从复制MySQL高性能集群_第6张图片

在延迟备份backup服务器上修改master info:

root@(none) 14:49  mysql>stop slave;
Query OK, 0 rows affected (0.00 sec)

root@(none) 15:08  mysql>reset slave;
Query OK, 0 rows affected (0.00 sec)

root@(none) 15:08  mysql>reset slave all;
Query OK, 0 rows affected (0.00 sec)

root@(none) 15:08  mysql>CHANGE MASTER TO MASTER_HOST='192.168.81.201',  #修改为slave1的ip
    ->     MASTER_USER='lijun',
    ->     MASTER_PASSWORD='Sanchuang123#',
    ->     MASTER_PORT=3306,
    ->     MASTER_AUTO_POSITION=1;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

root@(none) 15:08  mysql>CHANGE MASTER TO MASTER_DELAY =  600;  #延迟10分钟再进行相关操作
Query OK, 0 rows affected (0.01 sec)

root@(none) 15:10  mysql>START SLAVE;
Query OK, 0 rows affected (0.00 sec)

检查IO线程与SQL线程是否正常启动:

root@(none) 15:10  mysql>show slave status \G;

4.在master服务器与ansible服务器上搭建rsync+sersync文件实现异地备份与数据的实时同步,保证数据的安全性与完整性

ansible备份服务器操作

安装rsync服务端软件:

[root@ansible ~]# yum install rsync xinetd -y

设置开机启动:

[root@ansible ~]# cat /etc/rc.d/rc.local
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf  #添加配置

#给文件添加权限
[root@ansible ~]# chmod +x /etc/rc.d/rc.local

#启动服务
[root@ansible ~]# systemctl start xinetd 

创建rsyncd.conf配置文件:

vim /etc/rsyncd.conf  #添加下面配置
uid = root
gid = root
use chroot = yes
max connections = 0
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.pass
motd file = /etc/rsyncd.Motd
[back_data]  #配置项名称(自定义)
        path = /backup  #备份文件存储地址
        comment = A directory in which data is stored
        ignore errors = yes
        read only = no
        hosts allow = 192.168.81.140  #允许的IP地址(数据源服务器地址)

创建用户认证文件,并设置文件权限:

[root@ansible ~]# cat /etc/rsync.pass
lay:lay123 #设置用户名和密码
[root@ansible etc]# chmod 600 /etc/rsyncd.conf
[root@ansible etc]# chmod 600 /etc/rsync.pass

启动rsync和xinetd:

[root@ansible etc]# /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
[root@ansible etc]# ps aux|grep rsync
root       1509  0.0  1.3 354748 25576 pts/0    T    10:34   0:00 /usr/bin/python /usr/bin/yum install rsync xinetd -y
root       1694  0.0  0.0 114852   576 ?        Ss   10:54   0:00 /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
root       1703  0.0  0.0 112824   988 pts/0    S+   10:54   0:00 grep --color=auto rsync
[root@ansible etc]# systemctl start xinetd
[root@ansible etc]# ps aux|grep xinetd
root       1509  0.0  1.3 354748 25576 pts/0    T    10:34   0:00 /usr/bin/python /usr/bin/yum install rsync xinetd -y
root       1560  0.0  0.0  25044   588 ?        Ss   10:38   0:00 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid
root       1762  0.0  0.0 112824   984 pts/0    S+   10:55   0:00 grep --color=auto xinetd

查看rsync监听的端口号:

[root@dns-server etc]# netstat -antplu|grep rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      1694/rsync          
tcp6       0      0 :::873                  :::*                    LISTEN      1694/rsync 

数据源master服务器操作

安装配置rsync客户端软件:

#安装rsync软件
[root@master ~]# yum install rsync xinetd -y

#设置开机启动,给文件添加可执行权限
vim /etc/rc.local
/usr/bin/rsync --daemon 
[root@master ~]# chmod +x /etc/rc.d/rc.local  #添加权限

#修改配置文件,添加相关配置
[root@master ~]# cat /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
motd file = /etc/rsyncd.Motd
[Sync]
	comment = Sync
	uid = root
	gid = root
	port  = 873

#启动服务
[root@master ~]# systemctl start xinetd

#创建认真密码文件
[root@master ~]# cat /etc/passwd.txt
lay123
[root@master ~]# chmod 600 /etc/passwd.txt #设置文件权限,只设置文件所有者具有读取、写入权限即可

测试数据同步:

[root@master ~]# rsync -avH --port=873 --progress --delete /backup [email protected]::back_data --password-file=/etc/passwd.txt

安装sersync工具,实时触发rsync进行同步:

修改inotify默认参数(默认内核参数值太小):

[root@master ~]# sysctl -w fs.inotify.max_queued_events="99999999"
fs.inotify.max_queued_events = 99999999
[root@master ~]# sysctl -w fs.inotify.max_user_watches="99999999"
fs.inotify.max_user_watches = 99999999
[root@master ~]# sysctl -w fs.inotify.max_user_instances=65535
fs.inotify.max_user_instances = 65535

[root@master ~]# cat /etc/sysctl.conf
fs.inotify.max_queued_events=99999999
fs.inotify.max_user_watches=99999999
fs.inotify.max_user_instances=65535

安装sersync:

yum install wget
[root@master ~]# wget http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@master ~]#  ls
anaconda-ks.cfg  mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz  onekey_install_mysql_binary_v3.sh  sersync2.5.4_64bit_binary_stable_final.tar.gz
[root@master ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz 
[root@master ~]# mv GNU-Linux-x86 /usr/local/sersync

创建rsync,备份原文件,防止修改时出现错误:

[root@master ~]# cd /usr/local/sersync
[root@master sersync]# ls
confxml.xml  sersync2
[root@master sersync]# cp confxml.xml confxml.xml.bak
[root@master sersync]# cp confxml.xml data_configxml.xml
[root@master sersync]# ls
confxml.xml  confxml.xml.bak  data_configxml.xml  sersync2

修改配置文件data_configxml.xml:

 

启动服务,设置sersync监控开机自动执行

[root@master sersync]# /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/data_configxml.xml

#设置开机启动
[root@master sersync]# vim /etc/rc.d/rc.local
#在最后添加相关配置
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/data_configxml.xml

 5.使用ansible在另外两台服务器上安装mysqlrouter,在master服务器上创建2个读写账号分别进行不同功能的授权并配置不同端口,实现数据的读写分离

安装部署两台mysqlrouter

下载mysqlrouter上传至家目录中:

https://dec.mysql.com/get/Downloads/MySQL-Router/mysql-router-community-8.0.21-1.el7.x86_64.rpm 安装mysqlrouter:

[root@mysqlrouter-1 ~]# rpm -ivh mysql-router-community-8.0.21-1.el7.x86_64.rpm 

修改配置文件,添加以下配置:

[root@mysqlrouter-1 ~]# cd /etc/mysqlrouter
[root@mysqlrouter-1 mysqlrouter]# ls
mysqlrouter.conf
[root@mysqlrouter-1 mysqlrouter]# vim mysqlrouter.conf 
#read-only
[routing:slaves]
bind_address = 0.0.0.0:7001        
#slave
destinations = 192.168.81.201:3306,192.168.81.17:3306  
mode = read-only
connect_timeout = 1

#write and read
[routing:masters]
bind_address = 0.0.0.0:7002       
#master
destinations = 192.168.81.140:3306  
mode = read-write
connect_timeout = 1

启动mysqlrouter服务:

[root@mysqlrouter-1 mysqlrouter]# service mysqlrouter start 

实现读写分离

在master上创建2个账号,一个是读,一个是写,并进行相应的授权:

#给读写的账号授予所有的权力
root@(none) 17:51  mysql>grant all  on *.* to 'write'@'%' identified by 'Sanchuang123#';
#给读的账号授予只能读取数据的权力
root@(none) 17:51  mysql>grant select on *.* to 'read'@'%' identified by 'Sanchuang123#';

在客户端上测试2个账号的读写分离效果:

write7002端口测试:

连接测试:

基于GTID的半同步主从复制MySQL高性能集群_第7张图片

 读写权限测试:能读能写

基于GTID的半同步主从复制MySQL高性能集群_第8张图片

基于GTID的半同步主从复制MySQL高性能集群_第9张图片

read7001端口测试:

连接测试:

基于GTID的半同步主从复制MySQL高性能集群_第10张图片

读写权限测试:只能读不能写 

基于GTID的半同步主从复制MySQL高性能集群_第11张图片

基于GTID的半同步主从复制MySQL高性能集群_第12张图片

6.在2台mysqlrouter服务器上配置并运行keepalived软件,实现双VIP架构,避免资源闲置,提高数据库集群的响应能力

配置keepalived,实现双VIP架构 

具体的配置过程在nginx搭建web集群时已详细讲解过程,此处步骤相同不多赘述,仅展示结果与VIP漂移的效果

搭建基于nginx(双机热备+keepalived)的高可用web集群项目_钰儿yu1228的博客-CSDN博客

配置成功结果展示:

mysqlrouter1:

基于GTID的半同步主从复制MySQL高性能集群_第13张图片

mysqlrouter2:

基于GTID的半同步主从复制MySQL高性能集群_第14张图片

把mysqlrouter1中的keepalived服务关闭后,VIP漂移效果展示:

基于GTID的半同步主从复制MySQL高性能集群_第15张图片

7.部署Zabbix监控软件,在监控平台上添加相关的服务器和监控项

Zabbix的安装与配置的详细过程在下面链接的博客中有详细介绍,此处不重复叙述

Zabbix安装部署与架构,详细过程讲解_钰儿yu1228的博客-CSDN博客

添加被监控主机后,在zabbix-server上对zabbix-agent的相关性能信息进行拉取:

监控部分效果展示:

基于GTID的半同步主从复制MySQL高性能集群_第16张图片

8.在集群外的服务器上使用sysbench软件对集群进行压力测试,测试整个MySQL集群的性能

安装sysbench软件

方法1:使用rpm包安装

到官方网站下载mysql的repo文件:

MySQL :: Download MySQL Yum Repository

安装mysql的开发包:

[root@localhost ~]# yum -y install mysql-community-devel

sysbench源码包下载:

https://github.com/akopytov/sysbench/archive/1.0.15.tar.gz

[root@test ~]# mkdir /sysbench
[root@test ~]# mv sysbench-1.0.15.tar.gz /sysbench
[root@test ~]# cd /sysbench
[root@test sysbench]# tar xf sysbench-1.0.15.tar.gz 
[root@test sysbench]# cd sysbench-1.0.15
#进行编译安装
[root@test sysbench-1.0.15]# yum install automake libtool -y
[root@test sysbench-1.0.15]# ./autogen.sh 
[root@test sysbench-1.0.15]# ./configure
[root@test sysbench-1.0.15]# make -j 2
[root@test sysbench-1.0.15]# make install
[root@test sysbench-1.0.15]# which sysbench
/usr/local/bin/sysbench   #成功安装

方法2:使用epel源进行yum安装

#先安装epel源解决依赖关系
[root@test sysbench-1.0.15]# yum install epel-release -y
[root@test sysbench-1.0.15]# yum install sysbench -y
[root@test sysbench-1.0.15]# rpm -ql sysbench

进行压力测试

首先连接到mysqlrouter服务器上,创建压力测试会用到的sbtesy库:

[root@slave2 ~]# mysql -uwrite -p"Sanchuang123#" -h 192.168.81.111 -P 7002
write@(none) 14:41  mysql>create database sbtest;

数据准备:

#其中`--tables=10`表示创建10个测试表,`--table_size=100000`表示每个表中插入10000行数据
[root@test sysbench-1.0.15]# sysbench --mysql-host=192.168.81.111 --mysql-port=7002 --mysql-user=write --mysql-password='Sanchuang123#' /usr/share/sysbench/oltp_common.lua  --tables=10  --table_size=10000 prepare

开始运行数据,进行压力测试:

[root@test sysbench-1.0.15]# sysbench --threads=4 --time=20 --report-interval=5 --mysql-host=192.168.81.111 --mysql-port=7001 --mysql-user=write --mysql-password='Sanchuang123#' /sysbench/sysbench-1.0.15/src/lua/oltp_read_write.lua  --tables=10  --table_size=10000 run

结果展示:

基于GTID的半同步主从复制MySQL高性能集群_第17张图片


项目心得

了解了GTID的概念与原理,明确了半同步复制的优缺点,对搭建GTID半同步主从复制的过程更加熟悉;在数据备份过程中更加细心,考虑问题更加全面细致。

项目中需注意的问题

1.在change master info时需要注意因为环境不纯洁而导致IO线程无法正常启动

                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Slave has more GTIDs than the master has, using the master's SERVER_UUID. This may indicate that the end of the binary log was truncated or that the last binary log file was lost, e.g., after a power or disk failure when sync_binlog != 1. The master may or may not have rolled back transactions that were already replicated to the slave. Suggest to replicate any transactions that master has rolled back from slave to master, and/or commit empty transactions on master to account for transactions that have been'

在修改master info之前应该先使用相关命令将之前的记录先进行清除

2.在使用sysbench软件进行压力测试时,在MySQL上授权的账号需要区分清楚账号名与所对应的端口,在此实验中

write账号对应的端口为7002;read账号对应的端口为7001

在使用命令进行压力测试时,不能将用户名与端口号混淆,否则会无法测试成功,会出现相应的报错。

你可能感兴趣的:(MySQL,mysql,架构,运维)