博客
关于我
mysql主从复制及故障修复
阅读量:789 次
发布时间:2023-02-11

本文共 2219 字,大约阅读时间需要 7 分钟。

主MySQL数据库的配置

在三台主机(chen2/10.110、chen3/10.120、chen4/10.130)中安装MySQL数据,其中chen2/10.110作为主MySQL服务器,其余两台作为从MySQL服务器。以下将详细介绍主MySQL数据库的部署和配置过程。

部署MySQL数据库

在主MySQL服务器上部署MySQL数据库脚本,可以通过一键部署脚本完成对应版本的MySQL数据库安装。安装完成后,系统将自动配置数据库环境,包括数据目录、日志文件和socket文件等。

修改MySQL配置文件

在主MySQL服务器上修改配置文件,开启二进制日志功能,并进行其他必要的配置。具体操作如下:

  • 打开配置文件:vim /etc/my.cnf.d/mysql-server.cnf

  • 添加以下内容到配置文件末尾:

    [mysqld]server-id=1skip_name_resolve=1log-bin=somepath/mysql.sock  # 根据实际路径调整datadir=somepath/mysql  # 根据实际路径调整log-error=somepath/mysql.log  # 根据实际路径调整pid-file=/tmp/mysql.sock

    确保server-id设置为主机的IP地址,以避免与其他主机冲突。

  • 保存并退出编辑器。

  • 创建MySQL账号和密码

    为了实现主从数据库的复制功能,需要在主MySQL服务器上创建一个具有复制权限的账号。以下是具体操作步骤:

  • 使用MySQL命令创建账号:
    CREATE USER 'repluser'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
  • 为账号授予复制权限:
    GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%;
  • 查看账号信息:
    SELECT user, host, authentication_string FROM mysql.user;
  • 验证配置

    完成配置后,需要验证主MySQL服务器的二进制日志是否正常运行。可以通过以下命令查看二进制日志状态:

    SHOW MASTER STATUS\G

    从MySQL数据库的配置

    从MySQL数据库的配置与主MySQL服务器有所不同,主要区别在于从服务器的读写权限设置和复制功能的开启。

    修改从MySQL配置文件

    在从MySQL服务器上修改配置文件,开启二进制日志功能,并设置为仅读模式。具体操作如下:

  • 打开配置文件:vim /etc/my.cnf
  • 添加以下内容到配置文件末尾:
    [mysqld]server-id=2skip_name_resolve=1log-bin=somepath/mysql.sock  # 根据实际路径调整datadir=somepath/mysql  # 根据实际路径调整log-error=somepath/mysql.log  # 根据实际路径调整pid-file=/tmp/mysql.sockread_only=1
  • 保存并退出编辑器。
  • 配置主从复制

    在从MySQL服务器上配置主从复制,确保从服务器能够连接到主服务器并启动复制线程。具体操作如下:

  • 使用MySQL命令设置从服务器的主服务器信息:

    CHANGE MASTER TO     MASTER_HOST='192.168.10.110',    MASTER_USER='repluser',    MASTER_PASSWORD='123456',    MASTER_PORT=3306,    MASTER_LOG_FILE='chen2-bin.000002',    MASTER_LOG_POS=157;
  • 启动从服务器的复制线程:

    START REPLICA;
  • 重启MySQL服务:

    service mysqld restart
  • 验证从节点状态

    验证从节点是否正常接收数据。可以通过以下命令查看从节点的复制状态:

    SHOW REPLICA STATUS\G

    此外,还可以查看当前活跃的连接线程:

    SHOW PROCESSLIST;

    故障修复

    测试阻塞从节点

    在实际运行中,可能会遇到从节点因数据冲突或网络问题而阻塞的情况。为了避免这种情况,可以在从节点上设置仅读权限,防止写入操作导致的冲突。

  • 查看当前从节点的读写状态:

    SHOW VARIABLES LIKE 'read_only%';
  • 确认从节点上设置为仅读模式:

    SELECT @@global.read_only;
  • 如果需要修改,可以通过以下命令设置为可写模式:

    SET GLOBAL read_only=0;
  • 恢复阻塞节点

    当从节点出现阻塞时,可以采取以下步骤进行恢复:

  • 关闭复制线程:

    STOP REPLICA;
  • 删除冲突数据:

    DELETE FROM table_name WHERE ...;  # 根据具体情况调整SQL语句
  • 重启复制线程:

    START REPLICA;
  • 查看从节点状态,确保复制已恢复:

    SHOW REPLICA STATUS\G
  • 总结

    通过以上步骤,可以完成主MySQL数据库的配置以及从MySQL数据库的设置,实现主从数据库的数据复制功能。在实际应用中,建议定期备份数据并对配置文件进行验证,以确保数据库运行稳定。

    转载地址:http://mtbfk.baihongyu.com/

    你可能感兴趣的文章
    mudbox卸载/完美解决安装失败/如何彻底卸载清除干净mudbox各种残留注册表和文件的方法...
    查看>>
    mysql 1264_关于mysql 出现 1264 Out of range value for column 错误的解决办法
    查看>>
    mysql 1593_Linux高可用(HA)之MySQL主从复制中出现1593错误码的低级错误
    查看>>
    mysql 5.6 修改端口_mysql5.6.24怎么修改端口号
    查看>>
    MySQL 8.0 恢复孤立文件每表ibd文件
    查看>>
    MySQL 8.0开始Group by不再排序
    查看>>
    mysql ansi nulls_SET ANSI_NULLS ON SET QUOTED_IDENTIFIER ON 什么意思
    查看>>
    multi swiper bug solution
    查看>>
    MySQL Binlog 日志监听与 Spring 集成实战
    查看>>
    MySQL binlog三种模式
    查看>>
    multi-angle cosine and sines
    查看>>
    Mysql Can't connect to MySQL server
    查看>>
    mysql case when 乱码_Mysql CASE WHEN 用法
    查看>>
    Multicast1
    查看>>
    MySQL Cluster 7.0.36 发布
    查看>>
    Multimodal Unsupervised Image-to-Image Translation多通道无监督图像翻译
    查看>>
    MySQL Cluster与MGR集群实战
    查看>>
    multipart/form-data与application/octet-stream的区别、application/x-www-form-urlencoded
    查看>>
    mysql cmake 报错,MySQL云服务器应用及cmake报错解决办法
    查看>>
    Multiple websites on single instance of IIS
    查看>>