前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >排障集锦:九九八十一难之第十三难!-------------史上最全MySQL 单实例故障排查

排障集锦:九九八十一难之第十三难!-------------史上最全MySQL 单实例故障排查

作者头像
不吃小白菜
发布2020-09-08 09:56:50
7650
发布2020-09-08 09:56:50
举报

文章目录

  • 一、ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2)
    • 1、解决方法1 指定socket文件
    • 2、解决方案2
    • 3、解决方案三
  • 二、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    • 1、问题分析
    • 2、解决方法
  • 三、 故障现象 3
    • 1、问题分析
    • 2、 解决方法
  • 四、Can't open file: 'xxx_forums.MYI'. (errno: 145)
    • 1、问题分析:
    • 1、 解决方法
    • 2、通过 phpMyAdmin 修复,
  • 五、ERROR 1129 (HY000): Host 'xxx.xxx.xxx.xxx' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
    • 1、问题分析
    • 2、解决方法
    • 3、解决方法2
  • 六、客户端报 Too many connections。
    • 1、问题分析
    • 2、解决方法:
    • 3、临时修改最大连接数
  • 七、重头戏 ERROR! MySQL is running but PID file could not be found
    • 1、问题分析
    • 2、解决方法
      • 方法一
      • 方法二
      • 方法三
      • 方法四
  • 八、InnoDB: Error: page 14178 log sequence number 29455369832 InnoDB: is in the future! Current system log sequence number 29455369832
    • 1、问题分析

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

1、解决方法1 指定socket文件

socket文件作用 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,一般在配置部署mysql环境时都会在mysql的my.cnf文件中[mysqld]栈下添加上socket文件的路径,而这样做的好处是如果启用了多实例mysql时,可以通过socket文件来快速的登录mysql对应不同端口下的实例,如在一台有部署2个实例的mysql服务一个是用3306,一个是用3307端口,那么就可以通过2个不同的socket文件快速的登录

在这里插入图片描述
在这里插入图片描述

2、解决方案2

进入主配置文件 指定其客户端socket文件路径

在这里插入图片描述
在这里插入图片描述

3、解决方案三

可能是数据库没没有开启,启动数据库或者防火墙开放数据库监听端口,netstat检查一下端口是否打开 ,确定防护墙和增强型安全防护已经关闭

二、ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)

1、问题分析

密码不正确或者没有权限访问。

2、解决方法

修改 my.cnf 主配置文件,在[mysqld]下添加 skip-grant-tables,重启数据库。最后 修改密码命令如下

代码语言:javascript
复制
  mysql>use mysql; 
  mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
   mysql> flush privileges;

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

三、 故障现象 3

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

1、问题分析

如果 MySQL 主机查询 DNS 很慢或是有很多客户端主机时会导致连接很慢. 由于开发机器是不能够连接外网的,在进行 MySQL 连接时,DNS 解析是不可能完成的, 从而也就明白了为什么连接那么慢了。

2、 解决方法

修改 my.cnf 主配置文件,在[mysqld]下添加 skip-name-resolve,重启数据 库可以解决。注意在以后授权里面不能再使用主机名授权。

四、Can’t open file: ‘xxx_forums.MYI’. (errno: 145)

1、问题分析:

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

1、 解决方法

可以使用下面的两种方式修复数据表(第一种方法仅适合独立主机用户): 使用 MySQL 自带的专门用户数据表检查和修复工具 myisamchk。一般 情况下只有在命令行下面才能运行 myisamchk 命令。常用的修复命令为

代码语言:javascript
复制
myisamchk -r 数据文件目录/数据表名.MYI;

2、通过 phpMyAdmin 修复,

phpMyAdmin 带有修复数据表的功能,进入 到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。 注意:以上两种修复方式在执行前一定要备份数据库。修改文件的属组(仅适合独立主机用户):复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号 可读写(一般适用于 Linux 和 FreeBSD 用户)。

五、ERROR 1129 (HY000): Host ‘xxx.xxx.xxx.xxx’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’

1、问题分析

由于 mysql 数据库的参数:max_connect_errors,其默认值是 10。当大量 (max_connect_errors)的主机去连接 MySQL,总连接请求超过了 10 次,新的连接就再也无 法连接上 MySQL 服务。同一 个 ip 在短时间内产生太多中断的数据库连接而导致的阻塞(超过 mysql 数据库 max_connection_errors 的最大值)。

2、解决方法

使用 mysqladmin flush-hosts 命令清除缓存,命令执行方法如下:

代码语言:javascript
复制
mysqladmin -uroot -p -h 192.168.241.48 flush-hosts Enter password:

3、解决方法2

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

六、客户端报 Too many connections。

1、问题分析

连接数超出 Mysql 的最大连接数限制。

2、解决方法:

在 my.cnf 配置文件里面增大连接数,然后重启 MySQL 服务

代码语言:javascript
复制
max_connections = 10000

3、临时修改最大连接数

重启后不生效。需要在 my.cnf 里面修改配置文件,下次重启生 效。

代码语言:javascript
复制
set GLOBAL max_connections=10000;

七、重头戏 ERROR! MySQL is running but PID file could not be found

1、问题分析

2、解决方法

方法一

找到 mysql 中 data 目录下的 mysql-bin.index 文件,然后删除

代码语言:javascript
复制
find / -name mysql-bin.index

   rm -rf  /phpstudy/data/mysql-bin.index

kill 所有关于 mysql 或者 mysqld 的进程

方法二

代码语言:javascript
复制
chmod 644 /et/my.cnf

方法三

是因为data文件目录下有文件,导致初始化终止,必须要在data文件目录为空的情况下, 将data 目录更改为所有者为mysql,然后重新编译

方法四

删除 datadir 下的 ib_logfile0, ib_logfile1, 重启即可

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

1、问题分析

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/data/mysql/mysql.sock’ (2)
    • 1、解决方法1 指定socket文件
      • 2、解决方案2
        • 3、解决方案三
        • 二、ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
          • 1、问题分析
            • 2、解决方法
            • 三、 故障现象 3
              • 1、问题分析
                • 2、 解决方法
                • 四、Can’t open file: ‘xxx_forums.MYI’. (errno: 145)
                  • 1、问题分析:
                    • 1、 解决方法
                      • 2、通过 phpMyAdmin 修复,
                      • 五、ERROR 1129 (HY000): Host ‘xxx.xxx.xxx.xxx’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’
                        • 1、问题分析
                          • 2、解决方法
                            • 3、解决方法2
                            • 六、客户端报 Too many connections。
                              • 1、问题分析
                                • 2、解决方法:
                                  • 3、临时修改最大连接数
                                  • 七、重头戏 ERROR! MySQL is running but PID file could not be found
                                    • 1、问题分析
                                      • 2、解决方法
                                        • 方法一
                                        • 方法二
                                        • 方法三
                                        • 方法四
                                    • 八、InnoDB: Error: page 14178 log sequence number 29455369832 InnoDB: is in the future! Current system log sequence number 29455369832
                                      • 1、问题分析
                                      相关产品与服务
                                      数据库
                                      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                                      领券
                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档