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

作者:CODETC 时间:2024-01-21 17:48:35 

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

显示内容如下图所示:

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

可以看到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;

来源:http://www.codetc.com/article-168-1.html

标签:mysql,主从数据库,同步配置
0
投稿

猜你喜欢

  • Oracle的约束介绍与约束维护

    2024-01-28 04:19:05
  • Django 大文件下载实现过程解析

    2021-12-18 20:48:32
  • python程序 创建多线程过程详解

    2022-04-02 04:02:21
  • Python利用selenium建立代理ip池访问网站的全过程

    2021-12-03 11:41:26
  • 浅析JavaScript中的常用算法与函数

    2024-05-03 15:32:53
  • Python三目运算符(三元运算符)用法详解(含实例代码)

    2022-08-10 19:59:59
  • Bootstrap编写一个兼容主流浏览器的受众门户式风格页面

    2024-05-02 17:32:01
  • 在Django的URLconf中进行函数导入的方法

    2023-07-10 10:46:26
  • python接口调用已训练好的caffe模型测试分类方法

    2021-08-11 18:31:04
  • Python之tkinter组合框Combobox用法及说明

    2022-09-27 20:29:59
  • python将pandas datarame保存为txt文件的实例

    2021-11-17 06:21:51
  • Django model序列化为json的方法示例

    2022-08-25 01:39:03
  • python实现截取屏幕保存文件,删除N天前截图的例子

    2021-09-19 18:13:49
  • python pycharm的安装及其使用

    2023-11-04 20:27:06
  • SQL Server触发器及触发器中的事务学习

    2024-01-27 08:48:02
  • 人工智能——K-Means聚类算法及Python实现

    2022-02-04 19:04:43
  • python神经网络MobileNet模型的复现详解

    2022-09-24 19:54:14
  • Python线程同步的实现代码

    2022-10-01 00:20:48
  • php根据isbn书号查询amazon网站上的图书信息的示例

    2023-11-15 03:08:53
  • 使用 Python 清理收藏夹里已失效的网站

    2023-01-11 01:26:00
  • asp之家 网络编程 m.aspxhome.com