mysql主从同步镜像备份镜像备份
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
windows 2008R2 SERVER下mysql主从同步备份(mysql镜像)
windows下mysql主从同步数据备份实现方法,对于数据的安全性是很有必要的。一般情况下,如果条件允许的话可以使用三台服务器:主服务器、见证服务器、从服务器(见证服务器的作用即是实现故障自动转移使得系统正常运行的主动切换作用)。但是笔者这里只有两台服务器,因此只能做主从服务器,见证服务器可以省略了,在主服务器出现问题影响系统正常使用时及时的进行手动的切换。下面说说具体的配置步骤。
环境:两台windows 2008R2 server服务器,网络正常并且已经开通相关端口。
主服务器IP:192.168.0.109 A
镜像服务器IP:192.168.0.112 B
mysql版本:5.0.22
第一步:
在A数据库的 my.ini中添加
server-id=1
log- bin=C:\mysqlback #同步事件的日志记录文件
binlog-do-db=test1 #提供数据同步服务的数据库
binlog-do-db=test2 #提供数据同步服务的数据库
binlog-do-db=test3 #提供数据同步服务的数据库
master-host=192.168.0.112 #主机B的地址
master-user=root #主机B提供给A的用户(数据库的用户),该用户中需要包括数据库test1 test12test3的权限
master-password=123456 #访问密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
replicate-do-db=test1 #同步的数据库
replicate-do-db=test2 #同步的数据库
replicate-do-db=test3 #同步的数据库
第二步:
在B数据库的my.ini中添加
server-id=2
log- bin=C:\mysqlback #同步事件的日志记录文件
binlog-do-db=test1 #提供数据同步服务的数据库
binlog-do-db=test2 #提供数据同步服务的数据库
binlog-do-db=test3 #提供数据同步服务的数据库
master-host=192.168.0.109 #主机B的地址
master-user=use101 #主机A提供给B的用户,该用户中需要包括数据库test1 test12test3的权限
master-password=usepwd101 #访问密码
master-port=3306 #端口,主机的MYSQL端口
master-connect-retry=60 #重试间隔60秒
replicate-do-db=test1 #同步的数据库
replicate-do-db=test2 #同步的数据库
replicate-do-db=test3 #同步的数据库
第三步:
将A的mysql数据的权限给B
mysql>GRANT FILE ON *.* TO "root"@"192.168.0.112"IDENTIFIED BY 'abc123-=';
mysql>flush privileges;
mysql>GRANT REPLICATION SLAVE ON *.* TO "root"@"192.168.0.112" IDENTIFIED BY 'abc123-=';
mysql>flush privileges;
将B的Mysql数据的权限给A操作同上。
第四步:
在从服务器上面输入:mysql>show slave status;
如果为empty set,则在从服务器上面:mysql> CHANGE MASTER TO
MASTER_HOST='192.168.0.109', MASTER_USER='root', MASTER_PASSWORD='abc123-=';
重启AB数据库,后:
B机器:
mysql>slave start;
查看同步配置情况
A 机器:
mysql>show master status;
B机器:
mysql>show slave status;
假如A与B数据库没有同步,检查mysql安装目录下的.err文件。
如果slave日志中报错信息如下:
060807 11:40:17 [ERROR] While trying to obtain the list of slaves from the master 'xxx.xxx.xxx:3306' user 'root' got the following error: 'Access denied. You need the REPLICATION SLAVE privilegefor this operation'在master上,执行以下语句查看权限:
mysql>SHOW GRANTS FOR 'root'@'192.168.0.112' ; *************************** 1. row *************************** Grants for rep@192.168.0.102: GRANT Select REPLICATION SLAVE ON *.* TO 'rep'@'192.168.0.102'IDENTIFIED BY PASSWORD 'xxx'已经授予了REPLICAION SLAVE 权限了,怎么还会报这个错呢?
通过查看手册和源码,才知道slave需要执行一个语句来更新slave列表:
SHOW SLAVE HOSTS;而执行这个语句则需要 REPLICAITON CLIENT 权限,因此才会报错。因此,只要重新给帐号加上 REPLICATION CLIENT 权限就可以了。
GRANT REPLICATION SLAVE ,REPLICATION CLIENT ON *.* TO 'root' IDENTIFIED BY
'123456';
在主服务器上面:mysql>GRANT REPLICATION SLAVE ON *.* TO