平台:centos7,mysql5.6.34

解决数据库瓶颈问题 两台服务器可以同时读写数据库 A B两台服务器 A和B需要拥有一个同名的数据库 同步账号设置 首先要在两台服务器上各新增加一个可登陆的账号。

A端50

mysql>grant replication slave,file on *.* to 'sync_user'@'192.168.10.58' identified by '123456';

B端58

mysql>grant replication slave,file on *.* to 'sync_user'@'192.168.10.50' identified by '123456';

修改my.cnf主配置文件

vim /etc/my.cnf

在 [mysqld] 添加

[mysqld]
A端
log-bin=mysql-bin  #启动二进制日志系统
server-id=1              #本机数据库ID标示为主,另一为2
binlog-do-db=test   #二进制需同步的数据库名
binlog-ignore-db=mysql   #避免同步用户数据库配置
replicate-do-db=test    #同步数据库的名称
replicate-ignore-db=mysql   #屏蔽对mysql数据库的同步
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1           #B端配置2
B端
log-bin=mysql-bin  #启动二进制日志系统
server-id=2              #本机数据库ID标示为主,另一为1
binlog-do-db=test   #二进制需同步的数据库名
binlog-ignore-db=mysql   #避免同步用户数据库配置
replicate-do-db=test    #同步数据库的名称
replicate-ignore-db=mysql   #屏蔽对mysql数据库的同步
log-slave-updates
slave-skip-errors=all
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2           #A端配置1
mysql -u root -p
mysql>flush tables with read lock;    #锁定表格
service mysqld restart
mysql>show master status\G  #查看主服务器同步状态

A端是这样的

mysql> show master status\G
*************************** 1. row ***************************
            File: mysql-bin.000001
        Position: 106
    Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

B端是这样的

mysql> show master status\G
*************************** 1. row ***************************
            File: mysql-bin.000002
        Position: 106
    Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)

设定同步服务器ip 用户名与口令和日志文件名与show master status\G 输出结果一致。

A端
mysql>change master to master_host='192.168.10.58', master_user='sync_user', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=106;
B端
mysql>change master to master_host='192.168.10.50', master_user='sync_user', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=106;
start slave; 两段互为辅助
show slave status\G  验证配置
unlock tables;  解锁验证

1 . Master_host 指的是 主服务器的地址。

2 . Master_user 指的是主服务器上用来复制的用户。 从服务器会用此账号来登录主服务。进行复制。

3 . Master_log_file 就是前面提到的, 主服务器上的日志文件名.

4 . Read_Master_log_pos 就是前面提到的主服务器的日志记录位置, 从服务器根据这两个条件来选择复制的文件和位置。

5 . Slave_IO_Running 指的就是从服务器上负责读取主服务器的线程工作状态。 从服务器用这个专门的线程链接到主服务器上,并把日志拷贝回来。

6 . Slave_SQL_Running 指的就是专门执行sql的线程。 它负责把复制回来的Relaylog执行到自己的数据库中。 这两个参数必须都为Yes 才表明复制在正常工作。

此时你在A或者B端对test数据库里的内容进行修改,另一端会同步你的更改