1. 整体思路
MySQL开始复制是很简单的过程,不过,根据特定的应用场景,都会在基本的步骤上有一些变化。最简单的场景就是一个新安装的master和slave,整个过程如下:
(1)在每个服务器上创建一个复制帐号;
(2)配置master和slave;
(3)Slave连接master开始复制。
2. 具体做法
A服务器IP : 10.1.1.104
B服务器IP : 10.1.1.119
2.1 在A服务器上
1. 创建复制帐号
每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予REPLICATION SLAVE权限。用户名的密码都会存储在文本文件master.info中,eg:
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO backup@'%' IDENTIFIED BY '123456';
2. 配置master (10.1.1.104)
找到 my.ini, 在 [mysqld] 添加如下代码:
1 #replication setting2 server-id=104
3 log-bin=mysql-bin4 #master setting5 binlog-do-db=test_replication6 auto_increment_offset=1
7 auto_increment_increment=2
8 #slave setting9 relay-log=relay-bin10 replicate-do-db=test_replication11 #表示slave将复制事件写进自己的二进制日志12 log-slave-updates=on
重启master,运行SHOW MASTER STATUS,输出如下:
2.2 在B服务器上
找到 my.ini, 在 [mysqld] 添加如下代码:
1 #replication setting2 server-id=199
3 log-bin=mysql-bin4 #master setting5 binlog-do-db=test_replication6 auto_increment_offset=2
7 auto_increment_increment=2
8 #slave setting9 relay-log=relay-bin10 replicate-do-db=test_replication11 log-slave-updates=on
4、启动slave
1 mysql> CHANGE MASTER TO MASTER_HOST='10.1.1.104',2 -> MASTER_USER='backup',3 -> MASTER_PASSWORD='123456',4 -> MASTER_LOG_FILE='mysql-bin.000004', #上面的File字段5 -> MASTER_LOG_POS=700; #上面的Position字段
运行
mysql> START SLAVE;
查看运行状态
mysql> SHOW SLAVE STATUS
以上步骤若成功的话,已配置完 A 到 B 的主从复制,即 A 服务器对应数据库的修改 , B服务器对应数据库也作相应修改。
以下配置是 B 到 A 的主从复制
3. 具体做法
3.1 在B服务器上
1. 创建复制帐号
每个slave使用标准的MySQL用户名和密码连接master。进行复制操作的用户会授予REPLICATION SLAVE权限。用户名的密码都会存储在文本文件master.info中,eg:
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO backup@'%' IDENTIFIED BY '123456';
2. 配置: 因为上面的配置已经做好,这里只需要记录B服务器上的 File 及 Position,即运行 SHOW MASTER STATUS 命令
3.2 在A服务器上
1. 启动slave
mysql> CHANGE MASTER TO MASTER_HOST='10.1.1.104',-> MASTER_USER='backup',-> MASTER_PASSWORD='123456',-> MASTER_LOG_FILE='mysql-bin.000004', #上面的File字段-> MASTER_LOG_POS=700; #上面的Position字段
运行
mysql> START SLAVE;
查看运行状态
mysql> SHOW SLAVE STATUS
以上步骤若成功的话,已配置完 B 到 A 的主从复制,即 B 服务器对应数据库的修改 , A服务器对应数据库也作相应修改。