MySQL5.
6 主主复制
环境如下:
CentOS6.4_64
MySQL5.6
master1:192.168.
10.11
master2:192.168.
10.12
1.1 配置 master1
a. 修改 my.cnf 文件,增加如下内容:
server-id=
1 #数据库 ID 号
log-bin=mysql-
bin #启用二进制日志;
binlog-
do-db=
baba1 #需要同步的数据库名,这里同步 baba1、baba2 两数据库
binlog-
do-db=
baba2
binlog-ignore-db=
mysql #不同步的数据库名,如果不设置可以将其注释掉
log-bin=/
var/log/mysqlbin/bin_log #设定生成的 log 文件名,如果没有/
var/log/
mysqlbin 目录,
则创建,并执行 chown -R mysql.mysql /
var/log/
mysqlbin
log-slave-
updates #把从库的写操作,记录到 binlog 中
expire_logs_days=
365 #日志文件过期天数,默认是
0,表示不过期
auto-increment-increment=
2 #设定为主服务器的数量,防止 auto_increment 字段重复
auto-increment-offset=
1 #自增长字段的初始值,在多台 master 环境下,不会出现自增
长 ID 重复
b. 添加一个复制帐号 backup
[root@localhost ~]# mysql -uroot -
p123456
mysql>grant replication slave on *.* to backup@
‘%‘ identified by
‘123456‘;
mysql>
flush privileges;
c. 在 master2 上测试是否能连接到 master1,记得把 3306 添加到 iptables 里
[root@localhost ~]# mysql -ubackup -h
192.168.
10.11 -
p123456
1.2 配置 master2
a. 修改 my.cnf 文件,增加如下内容:
server-id=
2 #数据库 ID 号
log-bin=mysql-
bin #启用二进制日志;
binlog-
do-db=
baba1 #需要同步的数据库名,这里同步 baba1、baba2 两数据库
binlog-
do-db=
baba2
binlog-ignore-db=
mysql #不同步的数据库名,如果不设置可以将其注释掉
log-bin=/
var/log/mysqlbin/bin_log #设定生成的 log 文件名,如果没有/
var/log/
mysqlbin 目录,
巴巴网(www.baba.io)为您提供图书、文档、源码、工具等资源的下载,是您最好的资源下载网。
本系列文档,由巴巴网(www.baba.io)独家发行,如需最新版本,请访问 www.baba.io
则创建,并执行 chown -R mysql.mysql /
var/log/
mysqlbin
log-slave-
updates #把从库的写操作,记录到 binlog 中
expire_logs_days=
365 #日志文件过期天数,默认是
0,表示不过期
auto-increment-increment=
2 #设定为主服务器的数量,防止 auto_increment 字段重复
auto-increment-offset=
2 #自增长字段的初始值,在多台 master 环境下,不会出现自增
长 ID 重复
b. 添加一个复制帐号 backup
[root@localhost ~]# mysql -uroot -
p123456
mysql>grant replication slave on *.* to backup@
‘%‘ identified by
‘123456‘;
mysql>
flush privileges;
c. 在 Master1 上测试是否能连接到 Master2,记得把 3306 添加到 iptables 里
[root@localhost ~]# mysql -ubackup -h
192.168.
10.12 -
p123456
1.3 设置 master-
master 同步
a. 重启 master1、master2 上的 MySQL
[root@localhost ~
]# service mysql restart
b. 查看 master1 的状态
[root@localhost ~]# mysql -uroot -
p123456
mysql>
show master status;
+----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| bin_log.
000028 |
120 | baba1,baba2 | mysql | |
+----------------+----------+--------------+------------------+-------------------+
1 row
in set (
0.00 sec)
c. 查看 master2 的状态
[root@localhost ~]# mysql -uroot -
p123456
mysql>
show master status;
+----------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| bin_log.
000028 |
120 | baba1,baba2 | mysql | |
+----------------+----------+--------------+------------------+-------------------+
1 row
in set (
0.00 sec)
c. 设置 master1 从 master2 同步数据
mysql>CHANGE MASTER TO MASTER_HOST=
‘192.168.10.12‘,MASTER_PORT=
3306,
巴巴网(www.baba.io)为您提供图书、文档、源码、工具等资源的下载,是您最好的资源下载网。
本系列文档,由巴巴网(www.baba.io)独家发行,如需最新版本,请访问 www.baba.io
MASTER_USER=
‘backup‘,MASTER_PASSWORD=
‘123456‘,MASTER_LOG_FILE=
‘bin_log.00
0028‘,MASTER_LOG_POS=120;
mysql>
start slave;
#查询数据库的 slave 状态
mysql>
show slave status\G;
#如果下面两个参数都是 Yes,则说明 master1 配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
d. 设置 master2 从 master1 同步数据
mysql>CHANGE MASTER TO MASTER_HOST=
‘192.168.10.11‘,MASTER_PORT=
3306,
MASTER_USER=
‘backup‘,MASTER_PASSWORD=
‘123456‘,MASTER_LOG_FILE=
‘bin_log.00
0028‘,MASTER_LOG_POS=120;
mysql>
start slave;
#查询数据库的 slave 状态
mysql>
show slave status\G;
#如果下面两个参数都是 Yes,则说明 master1 配置成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
1.4 测试主主复制
a. 在 master1 上,执行如下操作:
[root@localhost ~]# mysql -uroot -
p123456
mysql>
create database baba1;
mysql>
use baba1;
mysql> create table test(id
int AUTO_INCREMENT,name varchar(
20),PRIMARY KEY (`id`));
mysql> insert into test(name)values(
‘aaa‘);
mysql> insert into test(name)values(
‘bbb‘);
mysql> insert into test(name)values(
‘ccc‘);
mysql>
select *
from test;
+----+------+
| id | name |
+----+------+
|
1 | aaa |
|
3 | bbb |
|
5 | ccc |
+----+------+
3 rows
in set (
0.00 sec)
b. 在 master2 上,执行如下操作:
巴巴网(www.baba.io)为您提供图书、文档、源码、工具等资源的下载,是您最好的资源下载网。
本系列文档,由巴巴网(www.baba.io)独家发行,如需最新版本,请访问 www.baba.io
[root@localhost ~]# mysql -uroot -
p123456
mysql>
use baba1;
mysql>
select *
from test;
+----+------+
| id | name |
+----+------+
|
1 | aaa |
|
3 | bbb |
|
5 | ccc |
+----+------+
3 rows
in set (
0.00 sec)
mysql> insert into test(name)values(
‘ddd‘);
mysql> insert into test(name)values(
‘eee‘);
mysql> insert into test(name)values(
‘fff‘);
mysql>
select *
from test;
+----+------+
| id | name |
+----+------+
|
1 | aaa |
|
3 | bbb |
|
5 | ccc |
|
6 | ddd |
|
8 | eee |
|
10 | fff |
+----+------+
6 rows
in set (
0.00 sec)
MySQL主主复制
标签: