mysql故障及解决分析

news/2024/5/1 6:14:54

目录

 MySQL 单实例故障排查


 MySQL 单实例故障排查

(1)故障现象 1

ERROR    2002    (HY000):    Can't    connect    to    local    MySQL    server    through    socket '/data/mysql/mysql.sock' (2)

问题分析:以上这种情况一般都是数据库未启动或者数据库端口被防火墙拦截导致。

解决方法:启动数据库或者防火墙开放数据库监听端口。
 

(2)故障现象 2
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

问题分析:密码不正确或者没有权限访问。解决方法:
修改 my.cnf 主配置文件,在[mysqld]下添加 skip-grant-tables,重启数据库。最后修改密码命令如下。
mysql>use mysql;
mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
mysql> flush privileges;

再删除刚刚添加的 skip-grant-tables 参数,重启数据库,使用新密码即可登录。

重新授权,命令如下。

mysql>grant all on *.* to 'root'@'mysql-server' identified by '123456';
 

(3)故障现象 3

在使用远程连接数据库时偶尔会发生远程连接数据库很慢的问题。

问题分析:如果 MySQL 主机查询 DNS 很慢或是有很多客户端主机时会导致连接很慢. 由于开发机器是不能够连接外网的,在进行 MySQL 连接时,DNS 解析是不可能完成的, 从而也就明白了为什么连接那么慢了。
解决方法:修改 my.cnf 主配置文件,在[mysqld]下添加 skip-name-resolve,重启数据库可以解决。注意在以后授权里面不能再使用主机名授权。

 

 

(4)故障现象 4

Can't open file: 'xxx_forums.MYI'. (errno: 145)

问题分析:

服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造  成了损坏。
可能是操作系统下直接将数据库文件拷贝移动,会因为文件的属组问题而产生这个  错误。
解决方法:

可以使用下面的两种方式修复数据表(第一种方法仅适合独立主机用户):

使用 MySQL 自带的专门用户数据表检查和修复工具 myisamchk。一般情况下只有在命令行下面才能运行 myisamchk 命令。常用的修复命令为:

myisamchk -r 数据文件目录/数据表名.MYI;

通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。
注意:以上两种修复方式在执行前一定要备份数据库。

修改文件的属组(仅适合独立主机用户):

复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号可读写(一般适用于 Linux 和 FreeBSD 用户)。
 

(5)故障现象 5
ERROR 1129 (HY000): Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

问题分析:由于 mysql 数据库的参数:max_connect_errors,其默认值是 10。当大量(max_connect_errors)的主机去连接 MySQL,总连接请求超过了 10 次,新的连接就再也无法连接上 MySQL 服务。同一个 ip 在短时间内产生太多中断的数据库连接而导致的阻塞( 超过 mysql 数据库
max_connection_errors 的最大值)。解决方法:
使用 mysqladmin flush-hosts 命令清除缓存,命令执行方法如下:

mysqladmin -uroot -p -h 192.168.241.48 flush-hosts Enter password:

修改 mysql 配置文件,在[mysqld]下面添加 max_connect_errors=1000,然后重启 MySQL。
 

 

6)故障现象 6

客户端报 Too many connections。
问题分析:连接数超出 Mysql 的最大连接数限制。解决方法:
在 my.cnf 配置文件里面增大连接数,然后重启 MySQL 服务。

max_connections = 10000

临时修改最大连接数,重启后不生效。需要在 my.cnf 里面修改配置文件,下次重启生效。set GLOBAL max_connections=10000;

(7)故障现象 7
 Warning: World-writable config file '/etc/my.cnf' is ignored ERROR! MySQL is running but PID file could not be found


问题分析:MySQL 的配置文件/etc/my.cnf 权限不对。解决方法:chmod 644 /et/my.cnf

 

 (8)故障现象 8

InnoDB: Error: page 14178 log sequence number 29455369832
InnoDB: is in the future! Current system log sequence number 29455369832

问题分析:innodb 数据文件损坏。

解决方法:修改 my.cnf 配置文件,在[mysqld]下添加 innodb_force_recovery=4, 启动数据库后备份数据文件,然后去掉该参数,利用备份文件恢复数据。
 

MySQL 主从故障排查
 

故障现象 1

从库的 Slave_IO_Running 为 NO
The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

问题分析:主库和从库的 server-id 值一样。

解决方法:修改从库的 server-id 的值,修改为和主库不一样。修改完后重启,再同步即可。

(2)故障现象 2

从库的 Slave_IO_Running 为 NO

问题分析:造成从库线程为 NO 的原因会有很多,主要原因是主键冲突或者主库删除或更新数据,从库找不到记录,数据被修改导致。通常状态码报错有 1007、1032、1062、1452 等。

解决方法一:

mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;

解决方法二:

设置用户权限,设置从库只读权限

set global read_only=true;

 

 

(3)故障现象 3

Error initializing relay log position: I/O error reading the header from the binary log

分析问题:从库的中继日志 relay-bin 损坏。

解决方法:手工修复,重新找到同步的 binlog 和 pos 点,然后重新同步即可。

mysql>CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx;
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/11448.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

考研数学|《1800》+《660》精华搭配混合用(经验分享)

肯定不行,考研数学哪有这么容易的! 先说说这两本习题册,李永乐老师推出的新版660题,相较于18年前的版本,难度略有降低,更加适合初学者。因此,对于处于基础阶段的学习者来说,新版660…

[flink 实时流基础] flink组件栈以及任务执行与资源划分

文章目录 7. Flink组件栈1. 部署层(1)Local模式(2)Cluster模式(3)Cloud模式 2.运行时3.API层4. 上层工具 8. 任务执行与资源划分1. 再谈逻辑视图到物理执行图2. 任务、算子子任务与算子链3. Slot与计算资源…

【Qt 学习笔记】Qt 背景介绍

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt 背景介绍 文章编号:Qt 学习笔记 / 01 文章目录 Qt 背景…

四川古力未来科技抖音小店:把握电商新风口,前景无限广阔

在数字化浪潮席卷全球的今天,电商行业以其独特的魅力和无限潜力,成为了众多创业者和投资者关注的焦点。四川古力未来科技抖音小店,正是站在这一风口浪尖上的新兴力量,其前景之广阔,令人瞩目。 抖音,作为一款…

全局UI方法-弹窗四-日期滑动选择器弹窗(DatePickerDialog)

1、描述 根据指定的日期范围创建日期滑动选择器,展示在弹窗上。 2、接口 DatePickerDialog.show(options?: DatePickerDialogOptions) 3、DatePickerDialogOptions 参数名称 参数类型 必填 默认值 参数描述 start Date 否 Date("1970-1-1") 设置选择…

基于JSPM的美食推荐管理系统

背景 互联网的迅猛扩张彻底转变了全球各类组织的运营模式。自20世纪90年代起,中国各级政府和企事业单位便开始探索运用网络系统来处理管理事务。然而,早期的网络覆盖不广、用户接受度不高、相关网络法规不健全以及技术发展不成熟等因素,都曾…