Mysql主从数据库(Master/Slave)同步配置与常见错误

 更新时间:2019年03月20日 14:14:54   作者:CODETC  
今天小编就为大家分享一篇关于Mysql主从数据库(Master/Slave)同步配置与常见错误,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

随着访问量的增加,对于一些比较耗时的数据库读取操作,一般采用将写入与读取操作分开来缓解数据库的压力,数据库引擎一般采用Master/Slave架构。实现mysql服务器的主从配置,可以实现读写分离,另外在主数据库崩溃后可以从备用数据库中恢复数据以不至于网站中断访问。下面简单说下mysql主从服务器配置的过程。

首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务。

主机A: 192.168.1.100

从机B: 192.168.1.101

可以有多台从机。

1、先登录主机 A,执行如下命令赋予从机权限,如果有多台丛机,就执行多次:

mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.1.101' IDENTIFIED BY '123456';

2、 打开主机A的my.cnf,输入如下配置参数:

server-id = 1 #主机标示,整数
log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only =0 #主机,读写都可以
binlog-do-db =test #需要备份数据,多个写多行
binlog-ignore-db =mysql #不需要备份的数据库,多个写多行

3、打开从机B的my.cnf,输入如下配置参数:

server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host =192.168.1.100
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =test #只复制某个库
replicate-ignore-db=mysql #不复制某个库

4、同步数据库

进过以上的配置,分别重启主机A和从机B,即可自动实现同步。

5、验证

在主机A中,mysql>show master status\G;

能看到大致这些内容

File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql

在从机B中,mysql>show slave status\G;

显示内容如下图所示:

可以看到Slave_IO_State项为Waiting for master to send event且红圈中两项皆为Yes,那么基本上可以确定是配置成功了

另外可以在主机A中,做一些INSERT, UPDATE, DELETE 操作,看看主机B中,是否已经被修改。

常见错误

1、master发生故障,经修复后启动后,slave无法与master同步

报错:Got fatal error 1236 from master when reading data from binary log

原因:master重启后,mysql的binlog会重新生成,相应的记录位置会改变

解决方法:

-master:

mysql > flush logs;
mysql > show master status;

记录下File和Position值

-slave:

mysql > stop slave;
mysql > CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000049',MASTER_LOG_POS=1359;
mysql > start slave;
mysql > show slave status\G;

2、slave发生故障,设置正确,但是无法初始化

报错:ERROR 1201 (HY000): Could not initialize master

解决方法:

-master:

mysql > flush logs;
mysql > show master status;

记录下File和Position值

-slave:

mysql > reset slave;
mysql > change master to master_host='192.168.10.100',master_user='test',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=106;
mysql > start slave;
mysql > show slave status\G;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 聊一聊MyISAM和InnoDB的区别

    聊一聊MyISAM和InnoDB的区别

    这篇文章主要介绍了聊一聊MyISAM和InnoDB的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • MySql中把一个表的数据插入到另一个表中的实现代码

    MySql中把一个表的数据插入到另一个表中的实现代码

    本篇文章是对MySql中把一个表的数据插入到另一个表中的实现代码进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Ubuntu下MySQL及工具安装配置详解

    Ubuntu下MySQL及工具安装配置详解

    这篇文章主要为大家详细介绍了Ubuntu下MySQL及工具安装配置方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • MySQL常用SQL语句总结包含复杂SQL查询

    MySQL常用SQL语句总结包含复杂SQL查询

    今天小编就为大家分享一篇关于MySQL常用SQL语句总结包含复杂SQL查询,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''

    mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''

    Mysql进行数据备份,还原后进行回帖,出现以下错误代码,其实主要是导入数据重复的问题,将现在的数据表清空,重新导入即可
    2012-07-07
  • mysql sql语句总结

    mysql sql语句总结

    mysql sql语句总结,都是一些比较实用简单的语句。一定要掌握的。
    2009-11-11
  • mysql蠕虫复制基础知识点

    mysql蠕虫复制基础知识点

    在本篇内容中我们给大家分享了关于mysql蠕虫复制基础知识点,对此有需要的朋友们跟着学习下吧。
    2019-02-02
  • MySQL优化教程之超大分页查询

    MySQL优化教程之超大分页查询

    这篇文章主要给大家介绍了关于MySQL优化教程之超大分页查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • mysql闪回工具binlog2sql安装配置教程详解

    mysql闪回工具binlog2sql安装配置教程详解

    这篇文章主要介绍了mysql闪回工具binlog2sql安装配置详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • mysql 5.6 从陌生到熟练之_数据库备份恢复的实现方法

    mysql 5.6 从陌生到熟练之_数据库备份恢复的实现方法

    下面小编就为大家带来一篇mysql 5.6 从陌生到熟练之_数据库备份恢复的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10

最新评论