主要参照了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) |