当前位置: 移动技术网 > IT编程>数据库>Mysql > Mysql主从数据库(Master/Slave)同步配置与常见错误

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

2019年07月20日  | 移动技术网IT编程  | 我要评论
随着访问量的增加,对于一些比较耗时的数据库读取操作,一般采用将写入与读取操作分开来缓解数据库的压力,数据库引擎一般采用master/slave架构。实现mysql服务器的主

随着访问量的增加,对于一些比较耗时的数据库读取操作,一般采用将写入与读取操作分开来缓解数据库的压力,数据库引擎一般采用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;

总结

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

  • MySQL 如何使用事务

    基础知识事务是指对一组 sql 语句进行一个原子化的操作,即如果这一组 sql 语句中有一条发生错误,那么其他的同组 sql 就都不会被执行。你可以把它当作一个... [阅读全文]
  • MySQL GROUP_CONCAT限制解决方案

    作用:  group_concat函数可以拼接某个字段值成字符串,默认的分隔符是 逗号,即"," ,  如果需要自定义分隔符可以使用 separator  如:... [阅读全文]
  • 聊聊MySQL事务的特性和隔离级别

    聊聊MySQL事务的特性和隔离级别

    网上对于此类的文章已经十分饱和了,那还写的原因很简单——作为自己的理解笔记。前言  此篇文章作为自己学习mysql的一些个人理解,使用的... [阅读全文]
  • 如何修改MySQL字符集

    如何修改MySQL字符集

    一、查看mysql的字符集show variables like '%char%'; 二、修改mysql配置文件不是安装目录,是数据目录。 我是用sublime... [阅读全文]
  • MySQL索引的各种类型

    什么是索引?索引是数据库存储引擎用于快速查找到指定数据的一种数据结构。可以用新华字典做类比:如果新华字典中对每个字的详细解释是数据库中表的记录,那么按部首或拼音... [阅读全文]
  • 详解Mysql 游标的用法及其作用

    [mysql游标的用法及作用]例子:当前有三张表a、b、c其中a和b是一对多关系,b和c是一对多关系,现在需要将b中a表的主键存到c中;常规思路就是将b中查询出... [阅读全文]
  • MySQL5.6升级5.7时出现主从延迟问题排查过程

    最近在做zabbix的数据库mysql5.6升级5.7时,出现主从延迟问题,这个问题困扰了很久没有解决,昨天终于解决了,整理了一下整个排查过程,分享给大家。环境... [阅读全文]
  • nginx限制并发连接请求数的方法

    简介限制并发连接数的模块为:http_limit_conn_module,地址:限制并发请求数的模块为:http_limit_req_module,地址:这两个... [阅读全文]
  • 总结几种MySQL中常见的排名问题

    前言: 在某些应用场景中,我们经常会遇到一些排名的问题,比如按成绩或年龄排名。排名也有多种排名方式,如直接排名、分组排名,排名有间隔或排名无间隔等等,这篇文章将... [阅读全文]
  • 深入分析MySQL数据类型 DECIMAL

    前言: 当我们需要存储小数,并且有精度要求,比如存储金额时,通常会考虑使用decimal字段类型,可能大部分同学只是对decimal类型略有了解,其中的细节还不... [阅读全文]
验证码:
移动技术网