准备:
服务器2台(主:172.16.1.200,从:172.16.1.201),ubuntu 16.04系统,mysql已安装
1、主服务器配置(172.16.1.200)
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
#master-to-master setting
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
log-slave-updates
sync_binlog = 1
auto_increment_offset = 1
auto_increment_increment = 2
创建用于同步的用户,并赋予权限。
mysql>CREATE USER 'slave'@'172.16.1.201' IDENTIFIED BY '数据库密码';
mysql>grant all privileges on *.* to 'slave'@'172.16.1.201';
查询主机状态
mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000004
Position: 154
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
重启mysql服务。
2、从服务器配置(172.16.1.201)
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
#master-to-master setting
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
log-slave-updates
sync_binlog = 1
auto_increment_offset = 2
auto_increment_increment= 2
创建用于同步的用户,并赋予权限。
mysql>CREATE USER 'slave'@'172.16.1.200' IDENTIFIED BY '数据库密码';
mysql>grant all privileges on *.* to 'slave'@'172.16.1.200';
查询主机状态
mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000006
Position: 156
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
重启mysql服务,并登录mysql。
mysql>stop slave;
mysql>change master to master_host='172.16.1.200',master_user='slave',master_password='数据库密码',master_log_file='mysql-bin.000004',master_log_pos=154;
开启同步服务。
start slave;
查询从机的服务状态。
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_Running: Yes //服务正常启动则为YES
Slave_SQL_Running: Yes //服务正常启动则为YES
3、配置主服务器(172.16.1.200)同步服务
登录mysql,开启同步服务。
mysql>stop slave;
mysql>change master to master_host='172.16.1.201',master_user='slave',master_password='数据库密码',master_log_file='mysql-bin.000006',master_log_pos=156;
mysql>start slave;
查询主机状态。
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_Running: Yes //服务正常启动则为YES
Slave_SQL_Running: Yes //服务正常启动则为YES
至此,完成主主配置,访问主机数据库,创建一个测试表,添加测试数据,打开从服务器查看数据是否同步,反之从服务器创建测试数据,查看主服务器是否同步。