mysql replication主从服务器配置-阿里云开发者社区

开发者社区> 数据库> 正文

mysql replication主从服务器配置

简介:

环境:

     主服务器: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;











本文转自 yntmdr 51CTO博客,原文链接:http://blog.51cto.com/yntmdr/1595616,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章