2013年(7)
分类: Mysql/postgreSQL
2013-07-29 23:52:15
原文地址:MySQL的主从同步备份 作者:ncoder
之前公司的MySQL都是使用mysqldump来进行数据备份的, 但:
1. 是完整备份, 每次耗时很长
2. 经理觉得主从备份很潮^__^
我是无所谓, 正好可以学点新东西. 书归正传吧.
------------------------------------------------------------
1. 在主mysql上添加备份用户:
grant replication slave on *.* to identified by ‘123456’ |
2. 配置主mysql的my.ini:
[mysqld]
server-id=1 log_bin=”d:/log/log_bin” |
[mysqld] server-id = 2 log_bin = “d:/log/log_bin”
#下面的配置只针对5.1版本之前, 之后的版本不再在这里进行配置 master-host =192.168.1.100 master-user =backup master-pass =123456 master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒) replicate-do-db =test #只复制某个库 replicate-ignore-db=mysql #不复制某个库 |
5.1以后的版本不再需要在这里进行主服务器的配置, 而是到命令行中进行配置, 可以写成下面的SQL脚本, 直接运行:
change master to master_host=”192.168.1.100”, master_user=”backup”, master_password=”123456, master_port=3306 |
4. 同步数据库
最简单的是用mysqldump导出需要的表, 再在从服务器里导入即可.
5. 设置两边的二进制日志.
在主mysql中执行:
show master status\G |
这里会得到主mysql当前的二进制索引文件的名字及当前的pos, 得到这个后, 在从mysql中执行:
change master to master_host=”192.168.1.100”, master_user=”backup”, master_password=”123456, master_port=3306,master_log_file=”filename",master_log_pos=1000 |
这里红色部分填上在主mysql中查到的, 就可以了.
6. 启动从备份:
start slave; |
OK, 到此就完事了. 其实在mysql以后的版本中, 配置主从已经变得非常容易了, 只要打开主从的二进制日志, 然后指定server-id, 之后把change-master那一段写成sql脚本, 配置的时候, 在从mysql里执行一下就完事了.