MYSQL主从服务器同步设置流程
一、 准备服务器
由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本。
Master主机名为:A(IP: 168.160.62.156) mysql5.0,
Slave主机名为:B(IP: 168.160.62.138) mysql5.0。
二、 创建复制账号
在Master主机上创建账号,可通过客户端,增加复制账号:repl,密码:p4ssword,或者通过命令行:
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO
repl@'168.160.62.156' IDENTIFIED BY 'p4ssword';
三、 配置Master
在Master主机上的MySQL的安装目录下,找到并打开文件:my.ini,
在[mysqld]下增加以下属性:
[mysqld]
#服务器ID, 每台服务器的ID不能设为相同的数。
server-id = 1
#开启数据库日志
log-bin = mysql-bin
#只复制wanfanglhs库
binlog-do-db = wanfanglhs
#二进制日志最大100M
max_binlog_size = 104857600
重启master。
运行SHOW MASTER STATUS命令,则会显示如下:
四、 配置Slave
在Slave主机上,创建数据库wanfanglhs,在MySQL的安装目录下,找到
并打开文件:my.ini,在[mysqld]下增加以下属性:
#服务器ID, 每台服务器的ID不能设为相同的数。
server_id = 2
#存储从Master拷贝过来的中继日志
relay_log = mysql-relay-bin
#Slave将复制事件写进自己的二进制日志
log-slave-updates
#主服务器主机地址与端口, 用于从服务器连接到主服务器
master-host = 168.160.62.156
master-port = 3306
#主服务器数据库用户名与密码
master-user = repl
master-password = p4ssword
#预设重试间隔时间
master-connect-retry = 60
五、 启动Slave
执行命令:start slave;
六、 查看Slave状态
执行命令:show slave status;
如果出现以下状态,则同步设置成功:
SLAVE STATUS:Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
这时可以在Master的wanfanglhs库中创建表或者增加、删除数据来试验同步情况。
七、 常见问题:
1. Slave_IO_Running: No,并且SLAVE STATUS始终是Connecting to master:
解决办法:
首先查看slave的账号是否有权限操作master的数据库,如果有权限,有可能是主从数据库的日志不同步,可以执行命令reset master、resetslave以重置主从数据库的日志,但执行之前,需要将master服务器的数据库冷拷贝到slave服务器中。