前言
简单配置mysql的双主模式。不涉及高级功能,只是简单配置起来。
配置过程
配置环境
准备两台虚拟机,192.168.10.10(node-0)和192.168.10.11(node-1)。
操作系统版本
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
mysql版本
$ mysql -V
mysql Ver 14.14 Distrib 5.7.15, for Linux (x86_64) using EditLine wrapper
配置node-0
以下操作都是在node-0上
1.编辑mysql的配置文件
$ vim /etc/my.cnf
添加以下几行配置
server-id=1 # 服务的ID
log-bin=mysql-bin # 启用二进制日志
auto-increment-increment=2 # 自增长的步长,这里是每次增加2
auto-increment-offset=1 # 设置自动增长的字段的偏移量
2.启动mysql服务
$ systemctl start mysqld
3.创建同步的账号
# 运行mysql客户端
$ mysql -uroot -p
创建同步账号
mysql> grant replication slave on *.* to 'user11'@'192.168.10.11' identified by '123456';
mysql> flush privileges;
4.查看master信息
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 612 | | mysql | |
+------------------+----------+--------------+------------------+-------------------+
记录下二进制日志文件名和位置
配置node-1
以下操作都是在node-1上
1.编辑mysql的配置文件
$ vim /etc/my.cnf
添加以下几行配置
server-id=2 # 服务的ID
log-bin=mysql-bin # 启用二进制日志
auto-increment-increment=2 # 自增长的步长,这里是每次增加2
auto-increment-offset=2 # 设置自动增长的字段的偏移量
2.启动mysql服务
$ systemctl start mysqld
3.创建同步的账号
# 运行mysql客户端
$ mysql -uroot -p
创建同步账号
mysql> grant replication slave on *.* to 'user10'@'192.168.10.10' identified by '123456';
mysql> flush privileges;
4.查看master信息
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 612 | | mysql | |
+------------------+----------+--------------+------------------+-------------------+
记录下二进制日志文件名和位置
5.配置同步
mysql> stop slave;
# (master_log_file和master_log_pos的值就是刚才记录的二进制日志文件名和位置)
mysql> change master to master_host='192.168.10.10',master_user='user11',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=613;
mysql> start slave;
mysql> show slave status\G
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
配置node-0
回到node-0上操作
$ mysql -uroot -p
mysql> stop slave;
# (master_log_file和master_log_pos的值就是刚才记录的二进制日志文件名和位置)
mysql> change master to master_host='192.168.10.11',master_user='user10',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=613;
mysql> start slave;
mysql> show slave status\G
...
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
OK,配置完成,测试在10.10上创建数据之后,在10.11上可以看到数据已经同步过来了。