共计 3906 个字符,预计需要花费 10 分钟才能阅读完成。
这篇文章主要介绍“MySQL5.6 怎么实现主主同步”,在日常操作中,相信很多人在 MySQL5.6 怎么实现主主同步问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL5.6 怎么实现主主同步”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
实战环境介绍:
服务器名 IP 系统 MySQL odd.example.com 192.168.1.115 rhel-5.8 5.6.24 even.example.com 192.168.1.116 rhel-5.8 5.6.24
假设要同步的库是 db_rocky
㈠ 创建同步用户
在 ODD 上
mysql grant replication slave on *.* to water @ 192.168.1.116 identified by cdio2010
Query OK, 0 rows affected (0.00 sec)
mysql flush privileges;
Query OK, 0 rows affected (0.00 sec)
在 EVEN 上
mysql grant replication slave on *.* to water @ 192.168.1.115 identified by cdio2010
Query OK, 0 rows affected (0.11 sec)
mysql flush privileges;
Query OK, 0 rows affected (0.00 sec)
㈡ 修改 /etc/my.cnf 配置文件, 为其添加以下内容:
在 ODD 上
[mysqld]
server-id=1
binlog-do-db=db_rocky # 需要记录进制日志的数据库.
binlog-ignore-db=mysql # 不需要记录进制日志的数据库.
replicate-do-db=db_rocky # 需要进行同步的数据库.
replicate-ignore-db=mysql,information_schema # 不需要同步的数据库.
注意:如果有多个数据库可用逗号分隔, 或者使用多个 binlog-do-db、binlog-do-db、replicate-do-db、replicate-ignore-db 选项
# 同步参数:
# 保证 slave 挂在任何一台 master 上都会接收到另一个 master 的写入信息
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
slave-skip-errors=all # 过滤掉一些没啥大问题的错误
在 EVEN 上
[mysqld]
server-id=2 #设置一个不同的 id 号
注意:在 my.cnf 里面有个默认值 1,把默认值改为其它的数字,而非新增一个 server-id
binlog-do-db=db_rocky #需要记录二进制日志的数据库.
binlog-ignore-db=mysql #不需要记录进制日志的数据库.
# 需要同步的数据库
replicate-do-db=db_rocky #需要进行同步的数据库.
replicate-ignore-db=mysql,information_schema # 不需要同步的数据库.
# 如果有多个数据库可用逗号分隔, 或者使用多个 binlog-do-db、binlog-do-db、replicate-do-db、replicate-ignore-db 选项
# 同步参数:
# 保证 slave 挂在任何一台 master 上都会接收到另一个 master 的写入信息
log-slave-updates
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2
slave-skip-errors=all # 过滤掉一些没啥大问题的错误
㈢ 分别重启服务器 ODD、EVEN 上的 mysql 服务
# server mysqld restart
㈣ 分别在服务器 ODD、EVEN 上查看做为主服务器状态
在 ODD
mysql flush tables with read lock; #防止进入新的数据
Query OK, 0 rows affected (0.00 sec)
mysql show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000007
Position: 438
Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
在 EVEN
mysql flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
mysql show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000008
Position: 107
Binlog_Do_DB: db_rocky
Binlog_Ignore_DB: mysql
1 row in set (0.01 sec)
㈤ 分别在服务器 ODD、EVEN 上用 change master 语句指定同步位置 :
在 ODD
mysql change master to master_host= 192.168.1.116 ,master_user= water ,master_password= cdio2010 ,
– master_log_file= mysql-bin.000008 ,master_log_pos=107;
Query OK, 0 rows affected (0.05 sec)
在 EVEN
mysql change master to master_host= 192.168.1.115 ,master_user= water ,master_password= cdio2010 ,
– master_log_file= mysql-bin.000007 ,master_log_pos=438;
Query OK, 0 rows affected (0.15 sec)
注:master_log_file,master_log_pos 由上面主服务器查出的状态值中确定
master_log_file 对应 File,master_log_pos 对应 Position
在 ODD、EVEN 上执行
mysql unlock tables;
Query OK, 0 rows affected (0.00 sec)
㈥ 分别在服务器 ODD、EVEN 上启动从服务器线程
mysql start slave;
Query OK, 0 rows affected (0.00 sec)
分别在服务器 ODD、EVEN 上查看从服务器状态 :
ODD 上
mysql show slave status\G;
*************************** 1. row ***************************
主要关注以下 2 个参数:
…
…
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
…
…
EVEN 上:
mysql show slave status\G;
*************************** 1. row ***************************
主要关注以下 2 个参数:
…
…
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
…
…
㈦ 测试
EVEN 上
mysql show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| db_rocky |
| mysql |
| performance_schema |
| test |
+——————–+
5 rows in set (0.00 sec)
mysql use db_rocky;
Database changed
mysql show tables;
Empty set (0.00 sec)
mysql create table water (id int);
Query OK, 0 rows affected (0.04 sec)
mysql insert into water values(1);
Query OK, 1 row affected (0.01 sec)
mysql commit;
Query OK, 0 rows affected (0.00 sec)
在 ODD 上
mysql show tables;
+——————–+
| Tables_in_db_rocky |
+——————–+
| t_rocky |
| water |
+——————–+
2 rows in set (0.00 sec)
mysql select * from water;
+——+
| id |
+——+
| 1 |
+——+
1 row in set (0.00 sec)
到此,关于“MySQL5.6 怎么实现主主同步”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!