您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

关于mysql复制

添加时间:2012-8-9 17:57:04  添加: 思海网络 

一、产成二进制日志的库 查看命令:show master status;
binlog-do-db=
binlog-ignore-db=
例:假设服务器上有mysql、a、b、c四个库,测试以下配置:

1、修改my.cnf文件,目的:只记录a和b两个库的日志
binlog-do-db=a,b
结果:所有库都不会记录日志(因为不存在"a,b"这个库,被看做一个库了,所以如果想指定多个库,应该分别指定)

2、修改my.cnf文件,目的:只记录a和b两个库的日志
binlog-do-db=a
binlog-do-db=b
结果:只记录a和b的日志
等同于:
binlog-ignore-db=mysql
binlog-ignore-db=c

3、修改my.cnf文件,目的:测试a库同时存在于do与ignore中会不会记录日志
binlog-do-db=a
binlog-do-db=b
binlog-ignore-db=a
结果:同样记录a和b的日志。如果两个语句同时做了配置,存在数据库冲突,则do的优先级大于ignore(仅测试用,生产中不会故意出现这种情况)

4、修改my.cnf文件,目的:测试如果一个库如:c 不存在于do和ignore配置参数中,会不会记录日志
binlog-do-db=a
binlog-do-db=b
binlog-ignore-db=mysql
结果:不会记录c的日志

总结:
只使用do或ignore就可以控制需要记录日志的数据库。如果两个参数都做了配置,则以binlog-do-db配置生效。


二、从服务器选择要复制的库,查看命令:show slave status\G
replicate-do-db=
replicate-ignore-db=

测试结果:
只使用do或ignore就可以控制需要复制的数据库。如果两个参数都做了配置,则以replicate-do-db=配置生效。




三、my.cnf与change master to (推荐)
mysql版本为5.5.19中
以下 参数只能在my.cnf中指定,使用change master to 会报错
slave-skip-errors=all或slave-skip-errors=1501,1502
log-slave-updates (mysql.cn中--logs-slave-updates应该是change中指定,配置文件中未具体指明参数)
report-host=156 或 report-host=example.example.com

binlog-do-db=dbname --只用do即可
binlog-ignore-db=dbname
(放到#binlog_format=mixed
binlog-do-db=wwwmaimaichacom
binlog-do-db=ucenter下)

replicate-do-db=dbname --只用do即可
replicate-ignore-db=dbname
skip-slave-start    ---(告诉从服务器当服务器启动时不启动从服务器线程。使用START SLAVE语句以后手动启动线程)



change语句(注意引号的使用):
change master to master_host='192.168.2.155',master_user='sync156',master_password='123',master_log_file='mysql-bin.000017',master_log_pos=107,master_port=3306,master_connect_retry=9;


change master to\
master_host='192.168.2.155',\
master_user='sync156',\
master_password='123',\
master_log_file='mysql-bin.000017',\
master_log_pos=107,\
master_port=3306,\
master_connect_retry=9;

change语句也可以直接配置在my.cnf文件中(有时会问题,不建议使用):
[mysqld]
server-id=2
master-host=db-master.mycompany.com
master-port=3306
master-user=pertinax
master-password=freitag
master-connect-retry=60
report-host=db-slave.mycompany.com
logs-slave-updates


slave-skip-errors=all不加此参数,遇到错误会导致复制中止,show slave stauts\G查看是否有错误如error:1052,解决:
stop slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1     ---跳过接下来1个错误
start slave


重启mysql后,不论binlog记录所有库,还是某个库,binlog文件都跳到下一个,pos为107


reset master;   
---清除binlog日志,执行后show master status;看到log_file=000001 pos=107


reset slave;   
 --- 删除master.info,建议执行过此命令后重启mysql服务并退出mysql登陆界面,重新登陆。如果不重启,再指定master参数时,没有指 定的按照reset slave之前的参数生效、加载到master.info文件中(包含show slave status\G看到的信 息,mysql每次启动如果此文件存在则读取此文件主服务器信息,不会加载my.cnf中的配置参数)

 

server-id即使不是链式复制,a-b和a-c两个主从复制时,server-id也不能相同

 

flush tables with read lock;此命令为所有数据库上锁为只读状态,unlock tables;或退出会话重新登陆后锁失效。

关键字:数据库、服务器、测试

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站