存档

文章标签 ‘主从’

mysql设置主从同步【亲测可用】

2014年9月29日 没有评论

假定,自动复制的mysql:

IP为:207.198.xxx.xxx
用户为:master_copy
密码为:master_copy~!@#$~

———————–

主服务配置:

1,配置my.ini 文件
server-id=1
log-bin=mysql-bin
binlog-do-db=test
binlog-do-db=test1(如果有多个数据库,可以再加行)

2,创建新用户
grant replication slave,file on *.* to ‘master_copy’@’%’ identified by ‘master_copy~!@#$~’;

3,重启mysql

———————–

从服务器配置:

1,配置my.ini 文件
server-id=2
slave-skip-errors=all(建议加上,比如主服务器mysql突然死了,再开机,会造成从的同步不了)
binlog-do-db=test
binlog-do-db=test1(如果有多个数据库,可以再加行)
【注意:要写在mysqld的后面,linux】

2,重启mysql

3,mysql命令:
stop slave;

4,设置自动同步用户
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;(表示跳过错误)
change master to master_host=”207.198.xxx.xxx”,master_user=”master_copy”,master_password=”master_copy~!@#$~”;

5,启动
slave start;

6,检测:
show slave status \G;

显示:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
即可

【说明:slave-skip-errors=all和SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1之后,即便辅mysql服务器重启服务,也可以实现同步,所以不用担心了。】

————————– ————————–

另外附上一些有参考价值的命令:

slave-skip-errors
参考:http://dev.mysql.com/doc/refman/5.6/en/replication-options-slave.html#option_mysqld_slave-skip-errors

flush logs;
reset master;
reset slave all;

————————–

另外,如果从服务器报错: Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’

当然,和 slave-skip-errors=all设置有关。

解决方法:

在主mysql那边,执行:
flush logs;
show master status;
记下File, Position。

在从mysql端,执行:
CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000025′,MASTER_LOG_POS=354;
slave start;
show slave status \G;

一切正常。

分类: mysql优化 标签: ,
css.php