博客
关于我
mysql主从复制及故障修复
阅读量:788 次
发布时间: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/

    你可能感兴趣的文章
    Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
    查看>>
    MySQL InnoDB引擎的锁机制详解
    查看>>
    Mysql INNODB引擎行锁的3种算法 Record Lock Next-Key Lock Grap Lock
    查看>>
    mysql InnoDB数据存储引擎 的B+树索引原理
    查看>>
    mysql innodb通过使用mvcc来实现可重复读
    查看>>
    mysql insert update 同时执行_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目...
    查看>>
    mysql interval显示条件值_MySQL INTERVAL关键字可以使用哪些不同的单位值?
    查看>>
    Mysql join原理
    查看>>
    mysql order by多个字段排序
    查看>>
    MySQL Order By实现原理分析和Filesort优化
    查看>>
    mysql problems
    查看>>
    mysql replace first,MySQL中处理各种重复的一些方法
    查看>>
    MySQL replace函数替换字符串语句的用法(mysql字符串替换)
    查看>>
    Mysql Row_Format 参数讲解
    查看>>
    mysql select, from ,join ,on ,where groupby,having ,order by limit的执行顺序和书写顺序
    查看>>
    MySQL Server 5.5安装记录
    查看>>
    mysql slave 停了_slave 停止。求解决方法
    查看>>
    MySQL SQL 优化指南:主键、ORDER BY、GROUP BY 和 UPDATE 优化详解
    查看>>
    MYSQL sql语句针对数据记录时间范围查询的效率对比
    查看>>
    mysql sum 没返回,如果没有找到任何值,我如何在MySQL中获得SUM函数以返回'0'?
    查看>>