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 选项没有设置或设置错误。
解决方法
- 检查主库是否已启用二进制日志。
进入 MySQL 客户端,运行 show binary logs;
命令查看是否存在二进制日志。
mysql> show binary logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 72493547 |
+------------------+-----------+
如果没有二进制日志,则需要在主库 MySQL 的配置文件 my.cnf 中设置 binlog_format 选项。
- 检查 binlog_format 选项是否设置正确。
在主库 MySQL 的配置文件 my.cnf 中,确保 binlog_format 选项设置正确。
[mysqld]
binlog_format=ROW
问题:mha-preporare 期间出现"Failed to get master_version_info"错误
原因
- 主库 MySQL 用户名或密码不正确。
- MHA 报错信息中提到的配置文件路径不正确或者配置文件格式不正确。
解决方法
- 检查 MySQL 主库用户名和密码是否正确。
MHA 使用的是 MySQL 主库的用户名和密码,需要确保 MHA 所在的服务器可以使用该账号成功登录到 MySQL 主库。
- 检查配置文件路径和格式是否正确。
确认配置文件路径是否正确,并检查配置文件格式是否正确。例如,必须使用 YAML 格式来编写配置文件。
问题:mha-preporare 期间出现“Failed to get current master's hostname”的错误
原因
- SSH 登录 MySQL 主库的用户没有 sudo 权限。
- SSH 登录 MySQL 主库的用户没有执行 "hostname" 命令的权限。
- MySQL 主库默认的 SSH 端口号不是 22。
解决方法
-
确定 SSH 登录 MySQL 主库的用户名和密码。
-
确定 MySQL 主库的 SSH 端口号。
MHA 支持在配置文件中指定 SSH 端口号,如果 MySQL 主机的 SSH 端口号不是 22,则需要在 MHA 配置文件中指定正确的 SSH 端口号。
[server1]
hostname=mydb1
port=3306
ssh_user=root
ssh_port=2222
- 确保 SSH 登录 MySQL 主机的用户拥有 sudo 和执行 "hostname" 命令的权限。
MHA 切换相关
问题:在执行 MHA 故障切换时出现 "Failed to stop SSH connections to 192.168.xx.xx" 错误
原因
- 在故障转移过程中,SSH 连接没有正常关闭。
解决方法
- 检查正在运行的 MySQL 和 SSH 进程。
运行命令 ps -ef | grep mysql
和 ps -ef | grep ssh
查看正在运行的 MySQL 和 SSH 进程。
- 手动关闭 MySQL 和 SSH 进程。
使用 kill 命令关闭所有与被故障主机连接的 MySQL 和 SSH 进程,例如:
$ kill -9 <mysql pid>
$ kill -9 <ssh pid>
- 再次运行 MHA 的故障转移命令。
问题:在执行 MHA 故障切换时出现 "Cannot connect to the NEW_MASTER(192.168.xxx.xxx) at Manager.pm" 错误
原因
- 新的 MySQL 主库没有正确配置或者启动失败。
解决方法
- 确定新的 MySQL 主库是否已经正常启动。
使用 SSH 登录到新的 MySQL 主库,检查 MySQL 是否已经正常启动。如果 MySQL 没有启动,则需要手动启动 MySQL。
$ sudo service mysql start
- 确认新的 MySQL 主库的连接信息。
检查 MHA 配置文件中新的 MySQL 主库的连接信息是否正确。
[mysql_new_master]
hostname=192.168.xxx.xxx
port=3306
user=mha
password=password
总之,在使用 MHA 过程中遇到问题可以先查看错误日志,针对具体的错误和问题找到解决方法,从而更好的使用 MHA 实现 MySQL 的高可用。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL 有关MHA搭建与切换的几个错误log汇总 - Python技术站