mysql主从复制

蓝胖    数据库    999+ 次    2018-02-07 13:18:25


主服务器my.cnf设置

server-id=1

log-bin=mysql-bin #日志名称

binlog-ignore-db=mysql #要忽略的数据库

binlog-do-db=taolai_1 #要备份的数据库, 若不填此项,则记录所有数据库

从服务器my.cnf设置(MariaDb为my.cnf.d/server.cnf)

server-id=2

log-bin=mysql-bin

重启主从的mysql服务

在主服务器上建立账号并赋予权限

mysql>GRANT REPLICATION SLAVE ON *.* to 'wz'@'%' identified by 'wz123';

(wz: 同步账号;wz123: 密码     生产服务器将%改为从服务器ip)

登陆主服务器查看master状态

mysql>show master status;

1518423977.jpg

配置从服务器Slave:

mysql>change master to master_host='172.16.160.93',master_user='wz',master_password='wz123',master_log_file='mysql-bin.000002',master_log_pos=23020360;

master_log_file为上图File的值;master_log_pos为上图Position的值

启动从服务器复制功能

mysql>start slave;

查看从服务器复制功能状态

mysql>show slave status\G

1518424144.jpg

只有当Slave_IO_Running: Yes;Slave_SQL_Running: Yes都为yes时,主从复制才算成功

监控

编写一shell脚本,用nagios监控slave的两个yes(Slave_IO及Slave_SQL进程),如发现只有一个或零个yes,就表明主从有问题了

注意:

1. Slave_IO_Running: Connecting 时 检查密码是否正确

2. Slave_SQL_Running: No 时 查看出错原因 

【ERROR】1452:无法在外键的表插入或更新参考主键没有的数据。由于item_discovery.itemid字段(外键)参考了items.itemid字段(主键),当要在item_discovery表插数据时,如果items表的主键没有对应的数据,则无法插入,报1452错误。此时可以检查参考的表的主键是否有主库对应的数据,如果有,则插入参考的表相应的数据,再开启复制恢复SQL线程。

【ERROR】1032:删除或更新从库的数据,从库找不到记录。此时,主库的数据是比从库新的,可以采取从库添加相同的数据在开启复制恢复SQL线程。

【ERROR】1062:从库插入数据,发生唯一性冲突。此时从库已经有相同主键的数据,如果再插入相同主键值的数据则会报错。可以查看主库的改行数据与从库的要插入数据是否一致,如一致则跳过错误,恢复SQL线程,如不一致,则以主库为准,将从库的该行记录删除,再开启复制。

3. 调试应先关闭从服务器复制功能 mysql>stop slave;

4. 主从服务器有内网条件的优先使用内网ip


上一篇: Laravel一主多从读写分离配置

下一篇: mysql大量数据分页查询优化-延迟关联

最新评论

小天天天天 回复:[em_63]给你点赞

2018-02-07 17:49:19 回复


热门文章

最新评论

网站数据

网站文章数:483

今日UV/PV/IP:6/6/6

昨日UV/PV/IP:22/31 /22

TOP