参考:http://www.cnblogs.com/weafer/archive/2011/09/20/2182566.html



环境:

     主服务器:192.168.127.147

     从服务器:192.168.127.146


主服务器配置:

1、为从服务创建账号并赋予权限:

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.127.%' IDENTIFIED BY 'repl'; 


说明:%是通配符,表示192.168.127.0-192.168.127.255的Server都可以以repl用户登陆主服务器。

2、配置主服务器:

 # vi /etc/my.cnf

添加以下内容到[mysqld]节点

server-id=1   #设置服务器id注意:如果原来的配置文件中已经有这一行,就不用再添加了。

log_bin=mysql-bin  #启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

binlog-do-db=osyunweidb  #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行

binlog-ignore-db=mysql   #不同步mysql系统数据库


保存并退出


3、重新启动mysqld服务:


systemctl restart mysqld


从服务器配置:

1、修改配置文件


 # vi /etc/my.cnf

添加以下内容到[mysqld]节点

server-id=2


2、重新启动mysqld服务:


systemctl restart mysqld


3、配置运行mysql命令

mysql>  CHANGE MASTER TO MASTER_HOST='192.168.127.147',

mysql> MASTER_USER='repl',MASTER_PASSWORD='repl',

mysql> MASTER_LOG_FILE='mysql-bin.000001',

msyql> MASTER_LOG_POS=0;


4、查看SLAVE状态:

mysql> SHOW SLAVE STATUS;


如果出现:

waiting for master to send event 没有报错的情况下

执行5。

如果出错误:

Could not find first log file name in binary log index file

解决办法:
从机器停止slave

mysql>STOP SLAVE;

 

到主服务器登上

记录master的bin的位置,例如:mysql> SHOW MASTER STATUS;


日志为mysqld-bin.000003

刷新日志:mysql> flush logs;

因为刷新日志file的位置会+1,即File变成为:mysqld-bin.000004


马上到从服务器上执行:

mysql>  CHANGE MASTER TO MASTER_HOST='192.168.127.147',

mysql> MASTER_USER='repl',MASTER_PASSWORD='repl',

mysql> MASTER_LOG_FILE='mysql-bin.000004',

msyql> MASTER_LOG_POS=0;


查看状态如果没错则执行5.


5、开启SLAVE;


mysql> START SLAVE;


配置完成,在主服务器插入数据,查看从服务同步情况。


从服务器同步如果遇到错误可以执行跳过语句:


mysql> SET GLOBAL sql_slave_skip_counter=1;