mysql双机互为主从复制搭建
主从复制搭建请参见Ubuntu下MySql5.7主从复制搭建,本文是在Ubuntu下MySql5.7主从复制搭建基础之上进行的搭建。
一:搭建的流程说明
1.数据库同步(请参见Ubuntu下MySql5.7主从复制搭建文中的第五、六步)
2.各服务器配置文件更改,mysql服务器重启
3.各服务器账号创建,权限分配
4.各服务器命令行中配置信息
5.各服务器slave启动
6.测试(略)
二:环境
A服务器
IP:192.168.1.205
系统:Ubuntu 16.04
MySQL:5.7.20
B服务器
IP:192.168.1.197
系统:Ubuntu 16.04
MySQL:5.7.20
三:配置文件更改
[A 服务器 192.168.1.205]
# bind-address = 127.0.0.1
server-id = 205
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
sync-binlog = 1
[B 服务器 192.168.1.197]
# bind-address = 127.0.0.1 #这里默认监听本地localhost
server-id = 197 #主机标示,整数
binlog-do-db = test #需要备份的数据库,多个写多行
binlog-ignore-db = mysql #不需要备份的数据库,多个写多行
replicate-do-db = test #只复制某个库
replicate-ignore-db = mysql #只复制某个库
sync-binlog = 1
重启A、B mysql服务(必须)
sudo service mysql restart
四:各服务器账号创建,权限分配
登录主机 A,在主服务器上,设置一个从数据库B的账户,使用REPLICATION SLAVE(从复制)赋予权限,如:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.197' IDENTIFIED BY '123456';
mysql> flush privileges;
登录主机 B,在主服务器上,设置一个从数据库A的账户,使用REPLICATION SLAVE(从复制)赋予权限,如:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.205' IDENTIFIED BY '123456';
mysql> flush privileges;
五:各服务器命令行中配置信息
得到主服务器A当前二进制日志名和偏移量,这个操作的目的是为了在从数据库启动后,从这个点开始进行数据的恢复。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 | 517 | test | mysql |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
登录从服务器B的mysql,配置主服务器A的ip及登录账号:
mysql> CHANGE MASTER TO
> MASTER_HOST='192.168.1.205',
> MASTER_USER='backup',
> MASTER_PASSWORD='123456',
> MASTER_LOG_FILE='mysql-bin.000007',
> MASTER_LOG_POS=517;
按如上步骤,再获取主服务器B当前的二进制日志名和偏移量,登录从服务器A的mysql,配置主服务器B的ip及登录账号。
六:各服务器slave启动
在从服务器A、B上,分别启动slave进程
mysql> start slave;
在从服务器A、B上,分别进行show salve status验证
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.X
Master_User: root
Master_Port: 3306
Connect_Retry: 5
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 263
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 408
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 263
Relay_Log_Space: 564
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
1 row in set (0.00 sec)
提示如下信息,说明配置成功了。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果出现Slave_IO_Running:Running
可能是你在更改mysql配置文件后没重启mysql服务,重启mysql服务即可。