准备:
服务器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
至此,完成主主配置,访问主机数据库,创建一个测试表,添加测试数据,打开从服务器查看数据是否同步,反之从服务器创建测试数据,查看主服务器是否同步。