• ADADADADAD

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

    mysql数据库 时间:2024-12-03 10:27:54

    作者:文/会员上传

    简介:

    随着访问量的增加,对于一些比较耗时的数据库读取操作,一般采用将写入与读取操作分开来缓解数据库的压力,数据库引擎一般采用Master/Slave架构。实现mysql服务器的主从配置,可以

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    随着访问量的增加,对于一些比较耗时的数据库读取操作,一般采用将写入与读取操作分开来缓解数据库的压力,数据库引擎一般采用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 = 2log_bin = /var/log/mysql/mysql-bin.logmaster-host =192.168.1.100master-user =backupmaster-pass =123456master-port =3306master-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主从数据库(Master/Slave)同步配置与常见错误.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载