MySQL 有关MHA搭建与切换的几个错误log汇总

yizhihongxing

MySQL 有关 MHA 搭建与切换的几个错误log汇总

介绍

MHA(Master High Availability)是基于 Master-Slave 复制技术的 MySQL 高可用方案,可以实现自动故障切换和在线修改主从配置等功能。在使用 MHA 过程中,可能会遇到一些错误和问题,下面整理了几个常见的错误 log。

MHA 搭建相关

问题:mha-prepare 期间出现"Failed to determine mysql_binlog_location"错误

原因

  • 主库未启用二进制日志。
  • MySQL 主库的 MySQL 配置文件 my.cnf 中 binlog_format 选项没有设置或设置错误。

解决方法

  1. 检查主库是否已启用二进制日志。

进入 MySQL 客户端,运行 show binary logs; 命令查看是否存在二进制日志。

mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 72493547 |
+------------------+-----------+

如果没有二进制日志,则需要在主库 MySQL 的配置文件 my.cnf 中设置 binlog_format 选项。

  1. 检查 binlog_format 选项是否设置正确。

在主库 MySQL 的配置文件 my.cnf 中,确保 binlog_format 选项设置正确。

[mysqld]
binlog_format=ROW

问题:mha-preporare 期间出现"Failed to get master_version_info"错误

原因

  • 主库 MySQL 用户名或密码不正确。
  • MHA 报错信息中提到的配置文件路径不正确或者配置文件格式不正确。

解决方法

  1. 检查 MySQL 主库用户名和密码是否正确。

MHA 使用的是 MySQL 主库的用户名和密码,需要确保 MHA 所在的服务器可以使用该账号成功登录到 MySQL 主库。

  1. 检查配置文件路径和格式是否正确。

确认配置文件路径是否正确,并检查配置文件格式是否正确。例如,必须使用 YAML 格式来编写配置文件。

问题:mha-preporare 期间出现“Failed to get current master's hostname”的错误

原因

  • SSH 登录 MySQL 主库的用户没有 sudo 权限。
  • SSH 登录 MySQL 主库的用户没有执行 "hostname" 命令的权限。
  • MySQL 主库默认的 SSH 端口号不是 22。

解决方法

  1. 确定 SSH 登录 MySQL 主库的用户名和密码。

  2. 确定 MySQL 主库的 SSH 端口号。

MHA 支持在配置文件中指定 SSH 端口号,如果 MySQL 主机的 SSH 端口号不是 22,则需要在 MHA 配置文件中指定正确的 SSH 端口号。

[server1]
hostname=mydb1
port=3306
ssh_user=root
ssh_port=2222

  1. 确保 SSH 登录 MySQL 主机的用户拥有 sudo 和执行 "hostname" 命令的权限。

MHA 切换相关

问题:在执行 MHA 故障切换时出现 "Failed to stop SSH connections to 192.168.xx.xx" 错误

原因

  • 在故障转移过程中,SSH 连接没有正常关闭。

解决方法

  1. 检查正在运行的 MySQL 和 SSH 进程。

运行命令 ps -ef | grep mysqlps -ef | grep ssh 查看正在运行的 MySQL 和 SSH 进程。

  1. 手动关闭 MySQL 和 SSH 进程。

使用 kill 命令关闭所有与被故障主机连接的 MySQL 和 SSH 进程,例如:

$ kill -9 <mysql pid>
$ kill -9 <ssh pid>

  1. 再次运行 MHA 的故障转移命令。

问题:在执行 MHA 故障切换时出现 "Cannot connect to the NEW_MASTER(192.168.xxx.xxx) at Manager.pm" 错误

原因

  • 新的 MySQL 主库没有正确配置或者启动失败。

解决方法

  1. 确定新的 MySQL 主库是否已经正常启动。

使用 SSH 登录到新的 MySQL 主库,检查 MySQL 是否已经正常启动。如果 MySQL 没有启动,则需要手动启动 MySQL。

$ sudo service mysql start

  1. 确认新的 MySQL 主库的连接信息。

检查 MHA 配置文件中新的 MySQL 主库的连接信息是否正确。

[mysql_new_master]
hostname=192.168.xxx.xxx
port=3306
user=mha
password=password

总之,在使用 MHA 过程中遇到问题可以先查看错误日志,针对具体的错误和问题找到解决方法,从而更好的使用 MHA 实现 MySQL 的高可用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL 有关MHA搭建与切换的几个错误log汇总 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 给技术新人的ODPS优化建议

    数据开发基本都是从陌生到熟悉,但是写多了就会发现各种好用的工具/函数,也会发现各种坑,本文分享了作者从拿到数据到数据开发到数据监控的一些实操经验。 写在前面 本文档是组内的一份算法ODPS离线开发分享,仅列出了这些年积累下来的一些重要经验和结论,特别是在算法日常数据处理和调度中的技巧和配置方法,至于具体为什么,建议大家去阿里云官网查看底层map reduce…

    MySQL 2023年4月17日
    00
  • mysql修改sql_mode报错的解决

    下面是关于“mysql修改sql_mode报错的解决”的完整攻略。 问题背景 在MySQL数据库中,我们可以使用set命令来修改sql_mode的值,如下所示: set global sql_mode=’blahblah’; 但是,在修改sql_mode时,可能会遇到如下错误提示: ERROR 1231 (42000): Variable ‘sql_mode…

    MySQL 2023年5月18日
    00
  • MySQL中binlog备份脚本分享

    关于MySQL的二进制日志(binlog),我们都知道二进制日志(binlog)非常重要,尤其当你需要point to point灾难恢复的时侯,所以我们要对其进行备份。关于二进制日志(binlog)的备份,可以基于flush logs方式先切换binlog,然后拷贝&压缩到到远程服务器或本地服务器的其他存储上,例如挂载的NAS存储,也可以使用mys…

    MySQL 2023年4月19日
    00
  • MySQL权限控制实现原理

    MySQL权限控制是指对MySQL服务器上的用户和资源进行访问限制的控制机制。它由MySQL特定的权限表决定并且允许管理员为每个MySQL值创建一个或多个帐户,并且要求他们在访问MySQL数据时提供身份验证信息。本篇文章将详细介绍MySQL权限控制的实现原理。 MySQL权限表 MySQL存储权限表系统的信息,其中包括用户和他们的权限。这些信息存储在MySQ…

    MySQL 2023年3月10日
    00
  • mysql开启主从复制

    主数据库配置:vim /etc/my.cnf server_id=146 #一般设置ip最后一位 log-bin=mysql-bin #开启bin-log binlog_do_db=test #生成test数据库binlog_do_db=sss #生成sss数据库binlog_ignore_db=sss #忽略数据库#查看配置是否生效 show VARIAB…

    MySQL 2023年4月13日
    00
  • 21条MySQL优化建议(经验总结)

    纵向扩展优化建议: 纵向扩展是通过提升计算机硬件配置提高系统性能的方法,但这种方式的成本非常高。以下是几条优化建议: 使用恰当的数据类型:例如,将CHAR(n)类型改为VARCHAR(n)类型,则在一个表中可以节省空间。当一个表的数据量很大时,这种优化方法可以大大提高性能。 使用合适的索引:索引是MySQL中重要的优化手段之一。通过使用合适的索引,可以提高查…

    MySQL 2023年5月19日
    00
  • MySQL中通过EXPLAIN如何分析SQL的执行计划详解

    MySQL中通过EXPLAIN命令可以查看SQL执行计划,从而优化SQL语句,并提高数据库系统的性能。下面就来详细讲解一下如何使用EXPLAIN分析SQL的执行计划。 什么是执行计划 执行计划是数据库系统解析SQL语句后,生成的一种数据结构,它表示了SQL语句的执行流程和相关信息,包括使用哪些索引、哪些表需要进行关联、如何执行聚合操作等等。 EXPLAIN命…

    MySQL 2023年5月19日
    00
  • 解决mysql ERROR 1045 (28000)– Access denied for user问题

    针对 mysql ERROR 1045 (28000)– Access denied for user 的问题,通常有以下三种解决办法: 1. 修改或重置 root 密码 步骤1:停止 MySQL 服务 在命令行输入以下命令停止 MySQL 服务: sudo systemctl stop mysql 步骤2:使用 -skip-grant-tables 参数…

    MySQL 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部