MySQL中MHA故障排查
文章目录
MySQL故障排查
MySQL主从环境常见故障
1、故障一
1.1 故障现象
mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8'
#表明MySQL服务器在启动时遇到了一个未知变量default-character-set=utf8
1.2 报错原因
- 表明MySQL服务器在启动时遇到了一个未知变量default-character-set=utf8
1.3 解决方法
- 前往mysql服务器的/etc/my.cnf配置文件注销掉错误行配置并重启mysql服务(主从服务器都需要注销配置内容)
#修改配置文件
vim /etc/my.cnf
[client]
port = 3306
#default-character-set=utf8
#注销此行配置内容
socket=/usr/local/mysql/mysql.sock
systemctl restart mysqld.service
#重启服务
2、故障二
2.1 故障现象
[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln492] Server 192.168.10.11(192.168.10.11:3306) is dead, but must be alive! Check server settings.
#服务器192.168.10.11(IP地址为192.168.10.11,端口号为3306)被认为是不可用的(dead),但是MHA期望它应该是可用的(alive)。这通常意味着MHA尝试连接到该服务器时失败了。
2.2 报错原因
- 数据库未启动或者数据库端口被防火墙拦截
2.3 解决方法
- 启动数据库或者防火墙开放数据库监听端口
systemctl stop firewalld
#192.168.10.11主机关闭防火墙,开放数据库监听端口
masterha_check_repl -conf=/etc/masterha/app1.cnf
#manager主机再次检测主从连接情况
3、故障三
3.1 故障现象
[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.10.13(192.168.10.13:3306) :1045:Access denied for user 'mha'@'192.168.10.14' (using password: YES), but this is not a MySQL crash. Check MySQL server settings.
#用户mha从IP地址192.168.10.14(运行MHA的节点的IP地址)尝试连接时,由于密码不正确或权限不足被拒绝了
3.2 报错原因
- 密码不正确或者没有权限问题
3.3 解决方法
- 修改/etc/my.cnf主配置文件,在[mysqld]下添加skip-grant-tables
vim /etc/my.cnf
[mysqld]
skip-grant-tables
#添加此行配置,mysql设置免密登录
systemctl restart mysqld.service
#重启服务
4、故障四
4.1 故障现象
- 在远程使用连接数据时偶尔会发生远程连接数据库很慢的问题
4.2 问题分析
- DNS解析慢,客户端连接过多
4.3 解决方法
- 修改/etc/my.cnf配置文件(增加skip-name-resolve参数)
- 数据库授权禁止使用主机名
5、故障五
5.1 故障现象
5.2 报错原因
- 服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏
- 因拷贝数据库导致文件的属组发生变化
5.3 解决方法
- 修复数据表(mysiamchk、phpMyAdmin)
- 修改文件的属组
6、故障六
6.1 故障现象
6.2 报错原因
- 超出最大连接错误数量限制
6.3 解决方法
- 清除缓存(flush-hosts关键字)
- 修改/etc/my.cnf配置文件(max_connect_errors=1000)
7、故障七
7.1 故障现象
[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.10.12(192.168.10.12:3306) :1040:Too many connections, but this is not a MySQL crash. Check MySQL server settings.
#MySQL服务器已经达到了其允许的最大连接数限制,因此无法再接受新的连接
7.2 报错原因
- 连接数超出MySQL的最大连接限制
7.3 解决方法
#修改配置文件
vim /etc/my.cnf
[mysqld]
max_connections=10000
#修改最大连接数10000
systemctl restart mysqld.service
#重启服务
masterha_check_repl -conf=/etc/masterha/app1.cnf
#manager主机,检测主从连接正常
8、故障八
8.1 故障现象
[error][/usr/local/share/perl5/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.10.12(192.168.10.12:3306) :1045:Access denied for user 'mha'@'192.168.10.14' (using password: YES), but this is not a MySQL crash. Check MySQL server settings.
#用户mha没有从192.168.10.14这个地址连接到MySQL服务器(192.168.10.12)的权限
8.2 报错原因
- MySQL的配置文件/etc/my.cnf权限问题
8.3 解决方法
chmod 644 /etc/my.cnf
#添加权限
systemctl restart mysqld.service
#重启服务
masterha_check_repl -conf=/etc/masterha/app1.cnf
#manager主机,检测主从连接正常
9、故障九
9.1 故障现象
[error][/usr/local/share/perl5/MHA/Server.pm, ln490] Slave IO thread is not running on 192.168.10.11(192.168.10.11:3306)
#从服务器的IO线程没有运行。表示从服务器没有从主服务器正确地读取二进制日志事件
9.2 报错原因
- 从服务器的IO线程没有运行。即从服务器没有从主服务器正确地读取二进制日志事件
9.3 解决方法
- 从服务器开启slave功能
mysql -uroot -p
#登录从服务器mysql数据库
show slave status\G
#查看从服务器状态
start slave;
#开启slave功能
show slave status\G
#查看从服务器状态
masterha_check_repl -conf=/etc/masterha/app1.cnf
#manager主机,检测主从连接正常
原文地址:https://blog.csdn.net/2301_81272194/article/details/137237713
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!