MySQL 主从热备份(读写分离)
原文:http://www.cnblogs.com/kissdodog/p/5422195.html
MySQL的主从备份,听个名词很高大上,其实都是MySQL原本就实现的了,你只需要简单配置一下就可以实现。
第一步:保持主从两个数据库是同步的,最好事先手动同步一下;
第二步:停止两个数据库,分别更改配置文件;
下面我使用如下两个地址来说明配置过程。
- 主数据库:192.168.0.244
- 从数据库:192.168.0.8
主服务器数据库,增加如下配置:
server-id = 244 #这个唯一就OK,一般取IP地址后面的几位
log-bin = E:\mysql\data\mysql-bin #日志所在目录
binlog-do-db = test #这个是要同步的数据库
从服务器数据库,增加如下配置:
server-id = 8 #这个唯一就OK,一般取IP地址后面的几位
replicate-do-db = test #这个是要同步的数据库
第三步,分别重启两个服务器的MySQL服务;
- net stop mysql;
- net start mysql;
两个服务器的MySQL服务都要启动起来;
第四步,主服务器授权Slave权限账号
GRANT REPLICATION SLAVE ON *.* to 'bu'@'%' identified by '123456';
第五步,登录主服务器,查询master状态;
show master status;
注意结果,结果里面的东西,在下一步会用到。
第六步:登录从服务器,配置从服务器的Slave
change master to master_host='192.168.0.244',master_user='bu',master_password='123456', master_log_file='mysql-bin.000004',master_log_pos=516;
master_log_pos是上面查询出来的Position 516。
第七步、启动从服务器的Slave
start slave;
第八步、验证从服务器的Slave服务状态
show slave status\G
以下两个状态必须为Yes。
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
如果有一项为No都不会同步成功。
我碰到过Slave_IO_Running为Connecting的。那可能是上面的连接change master to master_host...写错了。
第九步、随意修改下主数据库的数据,从服务器数据库立即会更新