MySQL运维实战(3.2) 常见数据库连接失败问题排查

这篇具有很好参考价值的文章主要介绍了MySQL运维实战(3.2) 常见数据库连接失败问题排查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:俊达
我们经常会遇到一些数据库连接失败或访问报错的问题。收集并分析具体的报错信息,可以帮助我们迅速定位问题。
MySQL运维实战(3.2) 常见数据库连接失败问题排查,MySQL运维实战,数据库,mysql,运维

1、客户端到服务端的网络是否畅通,服务端端口是否能连通。

使用ping、telnet等工具探测服务端的端口是否能访问。

[root@box3 ~]# telnet 172.16.20.51 3306
Trying 172.16.20.51...
Connected to 172.16.20.51.
Escape character is '^]'.
J
5.7.3-m/i
         _Y(^#XTCcie|Pmysql_native_password]

!#08S01Got packets out of orderConnection closed by foreign host.

[root@box3 ~]# telnet 172.16.20.52 3306
Trying 172.16.20.52...
telnet: connect to address 172.16.20.52: Connection refused

如果端口不通,要先排除网络问题,如是否有防火墙限制,服务端是否正常。

2、如果端口能访问,需要看客户端的报错信息。

客户端或者编程接口连接数据库失败,通常会有相应的错误消息。通过错误消息可以判断问题原因,常见的连接失败、查询报错的原因如下:

  • 账号密码错误
  • 数据库连接数占满
  • 数据库账号被锁定
  • 超出max-connect-error限制
  • 客户端连接池满了
  • 连接会话被KILL
  • 会话超时
  • 对应的客户端报错信息
[root@box3 ~]# mysql -udemo -h172.16.20.51 -pdem
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'demo'@'box3' (using password: YES)

[root@box3 ~]# mysql -h 172.16.20.51 -udemo -pdemo
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1203 (42000): User demo already has more than 'max_user_connections' active connections

[root@box3 ~]# mysql -udemo -h172.16.20.51 -pdemo
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1040 (HY000): Too many connections

[root@box3 ~]# mysql -udemo -h172.16.20.51 -pdemo
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1129 (HY000): Host '172.16.20.53' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

[root@box3 ~]# mysql -udemo -h172.16.20.51 -pdemo
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 3118 (HY000): Access denied for user 'demo'@'box3'. Account is locked.

mysql> select 1;
ERROR 2013 (HY000): Lost connection to MySQL server during query


mysql> select 1;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2003 (HY000): Cant connect to MySQL server on '172.16.20.51' (113)
ERROR:
Cant connect to the server


[root@box3 ~]# mysql -h 172.16.20.51 -udemo -pdemo -P 3307
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Cant connect to MySQL server on '172.16.20.51' (111)


mysql> select 1;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> select 1;
ERROR 2006 (HY000): MySQL server has gone away

使用perror查看错误码的含义
如果服务端返回的报错信息中有错误码,如下面日志中的(113),可以使用perror查看对应的错误信息
ERROR 2003 (HY000): Cant connect to MySQL server on ‘172.16.20.51’ (113)

[root@box3 ~]# perror 113
OS error code 113:  No route to host

[root@box3 ~]# perror 110
OS error code 110:  Connection timed out

[root@box3 ~]# perror 11
OS error code  11:  Resource temporarily unavailable

[root@box3 ~]# perror 111
OS error code 111:  Connection refused

3、查看mysql服务端日志文件

mysql服务端的日志文件中包含重要信息。如果连接失败,或者执行sql有异常,可以到日志文件中查看是否有相关信息。日志文件的路径由参数log_error指定。

mysql> show variables like 'log_error';
+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| log_error     | /var/log/mysqld.log |
+---------------+---------------------+
2021-04-06T22:55:50.623621Z 8 [Note] Got packets out of order
2021-04-06T23:00:40.347126Z 9 [Note] Access denied for user 'test'@'box3' (using password: YES)

2021-04-06T23:33:42.004939Z 8 [Note] Aborted connection 8 to db: 'unconnected' user: 'demo' host: 'box3' (Got timeout reading communication packets)

4、使用tcpdump分析包

对于一些更隐蔽的问题,如果使用上面几种方法都无法定位问题原因,可能需要使用tcpdump工具抓包进行分析。

通过以上系列的排查和解决步骤,及时采取有效的措施,能够使得数据库连接问题得以迅速解决,进一步确保系统的正常运行。更多技术信息欢迎查看云掣官网https://yunche.pro/?t=yrgw文章来源地址https://www.toymoban.com/news/detail-811747.html

到了这里,关于MySQL运维实战(3.2) 常见数据库连接失败问题排查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源数据库Mysql_DBA运维实战 (备份与还原)

    备份对于数据库而言是至关重要的。当数据文件发生损坏、MySQL服务出现错误、系统内核崩溃、计算机硬件损坏或者数据被误删等事件时,使用一种有效的数据备份方案,就可以快速解决以上所有的问题。MySQL提供了多种备份方案,包括: 逻辑备份、物理备份、全备份以及增

    2024年02月12日
    浏览(68)
  • 开源数据库Mysql_DBA运维实战 (部署服务篇)

             1.数据库能做什么 2.数据库的由来 数据库的系统结构❀ 1.数据库系统DBS 2.SQL语言(结构化查询语言) 3.数据访问技术 部署Mysql❀ 1.通过rpm安装部署Mysql 2.通过源码包安装部署Mysql 1.数据库能做什么 a.不论是淘宝,吃鸡,爱奇艺,抖音,快手,知乎,百度贴吧等,众所周

    2024年02月14日
    浏览(43)
  • 开源数据库MYSQL DBA运维实战 第二章 SQL

    1.1定义库 创建业务数据库         语法:CREATE  DATABASE   数据库名;         数据库命名要求:                 区分大小写                 唯一性                 不能使用如create  select                 不能单独使用数字和特殊符号如-                

    2024年02月20日
    浏览(82)
  • 开源数据库Mysql_DBA运维实战 (DDL语句)

    例如:CREATE  DROP ALTER 定义库{                 创建业务数据库: CREAATE DATABASE   ___数据库名___ ;                 数据库名要求{                                         a.区分大小写                                         b.唯一性  

    2024年02月13日
    浏览(53)
  • 开源数据库Mysql_DBA运维实战 (修改root密码)

    本文以windows为例为大家详细介绍下MySQL修改root密码的4种方法,大家可以可以根据的自己的情况自由选择,希望对大家有所帮助 方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql set password for 用户名@localhost = password(‘新密码’); 例子:mysql set password for root@localhost = password

    2024年02月12日
    浏览(42)
  • 开源数据库Mysql_DBA运维实战 (DML/DQL语句)

    DML/DQL DML         INSERT    实现数据的  插入                 实例:         DELETE   实现数据的  删除                 实例:         UPDATE   实现数据的  更新                  实例1:                  实例2:          

    2024年02月13日
    浏览(42)
  • MYSQL数据库连接池及常见参数调优

    数据库连接池是一种用于优化数据库连接的技术,它通过在应用程序和数据库之间建立一个连接池来管理和复用数据库连接,以提高数据库访问效率和性能。数据库连接池通常包含以下参数: 初始连接数(initialSize):连接池初始建立的连接数; 最小连接数(minIdle):连接

    2024年02月05日
    浏览(60)
  • 3.2 - 编程基础 - MySQL数据库

    「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」: 此文章已录入专栏《网络安全入门到精通》

    2024年02月08日
    浏览(37)
  • 【实战】nodejs 必会技能 —— 封装 mysql 数据库连接

    [mysql - mysql中文文档翻译 - Breword 文档集合]:(https://www.breword.com/mysqljs-mysql) 安装依赖包: [mysql - npm]:(https://www.npmjs.com/package/mysql) 运行中若遇到如下报错,请检查输入信息是否正确(host、port、user、password 等),jdbc配置中拿到的相关信息尤其是密码很可能是加密后的 node -

    2024年02月10日
    浏览(45)
  • MySQL数据库 --- 运维篇

    错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的,默认存放目录 /var/log/,默认的日志文件名为 mysqld

    2024年02月08日
    浏览(101)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包