Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480068
  • 博文数量: 111
  • 博客积分: 2332
  • 博客等级: 大尉
  • 技术积分: 1187
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-29 11:22
文章分类

全部博文(111)

文章存档

2013年(9)

2012年(28)

2011年(17)

2010年(28)

2009年(29)

我的朋友

分类: Mysql/postgreSQL

2010-11-04 10:50:57

主要参照了http://blog.chinaunix.net/u3/117887/showart_2318521.html
但是在配置文件里面没加以下这两项:
log-slave-updates #这个参数一定要加上,否则不会给更新的记录些到二进制文件里
slave-skip-errors #是跳过错误,继续执行复制操作

这里说明一下log-slave-updates是如果作为主库的数据库B也是从别的库A同步过来的,那么加上这个参数之后,B库的从库C才会更新。mysql从库默认是不记主库同步过来的binlog的,加上这个参数之后就记了。详见:http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_log-slave-updates

log-bin=mysql-bin    #这一项是打开主库的binlog日志。
一定要把
mysql> show master status;
+------------------+-----------+-----------------+------------------+
| File             | Position  | Binlog_Do_DB    | Binlog_Ignore_DB |
+------------------+-----------+-----------------+------------------+
| mysql-bin.000002 | 316125231 | db1,db2 |                  |
+------------------+-----------+-----------------+------------------+
这个给记录好了。
因为从库就是从这个binlog的这个position开始得到binlog日志的。
从库中的数据,必须和主库为以上状态时,里面的数据是一致的,不然可能同步后数据会有错误。
就像在从库中操作
CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='backup',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=316125231;

还有就是copy数据库文件的话,如果mysql主从库之间的大版本不一致,从库中的数据是不能用的,这是就只好从主库dump数据了。

如果作为主库的数据库里面有多个数据库,并且其中某个数据库还是其他数据库的从库的时候,my.cnf里面的server-id不为1,此时不要修改server-id,就用当前的server-id就行。然后在辅库的my.cnf里面,将server-id设置为和此server-id不一样的值就可以了。

如果遇到Slave_SQL_Running: No的问题,解决方法见这里:
http://jianzi0307.blog.163.com/blog/static/208120020091212532947/
阅读(946) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~