MySQL服务器端&客户端常见错误
客户端
1.ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query
使用select 一个大表,query的过程中被主库kill掉会出现下面错误
2.ERROR 2006 (HY000): MySQL server has gone away
如果超过wait_timeout或者interactive_timeout时,再使用这个连接时
admin>show databases;
insert values()()如果数据量的大小超过了max_allow_packets的大小,也会报
ERROR 2006 (HY000): MySQL server has gone away
服务器端error log中报错:
141111 19:30:16 [Warning] Aborted connection 1280 to db: 'deal' user: 'admin' host: '10.0.0.0' (Got timeout reading communication packets)
3.ERROR 1045 (28000): Access denied for user 'test'@'10.0.0.0' (using password: YES)
- ping一下要连接数据库,看能否ping通;
- 使用mysql client尝试连接一下,注意使用-h -u -P -p分别指定host、user、port,例如mysql -hdbxx -utest -P5002 -p,然后回车,输入密码;
- 强调一下,第2步的时候使用-p之后回车,然后输入密码,而不是把密码作为参数直接输入,这样一个安全,二是避免了密码中转义字符引起的问题;
4.ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.1' (111)
这种情况下,说明还没有连接上mysql,尝试ping下数据库,看是否能ping通;其次看下mysql server是否启动;
5.ERROR 1040 (HY000): Too many connections
当前服务器端的连接数超过了设置的最大连接数max_connections
6.Host 'host_name' is blocked because of many connection errors.Unblock with 'mysqladmin flush-hosts'
如果client在连接server的时候,出错次数超过server设置的max_connect_errors(不包括错误的密码尝试),则会报这个错误;这个一般是网络存在问题,如果确认网络存在偶尔性的,可以增大max_connect_errors并执行flush-hosts
7.Communications link failure,The last packet successfully received from the server was *** millisecond ago.The last packet successfully sent to the server was *** millisecond ago。
1) mysql服务器默认的“wait_timeout”是8小时(也就是默认的值默认是28800秒),也就是说一个connection空闲超过8个小时,mysql将自动断开该connection,通俗的讲就是一个连接在8小时内没有活动,就会自动断开该连接。而连接池却认为该连接还是有效的(因为并未校验连接的有效性),当应用申请使用该连接时,就会导致上面的报错。
2) 如果客户端连接设置了socketTimeout=1000(即1s), 当客户端连接发送一个慢查询(超过1s)时,客户端连接socket会断开,同样会报“Communications link failure” 错误

8.Could not create connection to database server. Attempted reconnect 3 times. Giving up。
1)如上错误常见情况是后端mysql服务不可用,请确认后端mysql服务正常以及连接使用的配置参数正确;
2)还有一种情况是业务使用了Atlas,业务连接串中配置了重连(autoReconnect=true),当连接池中连接损坏(如上7中描述了可能损坏的情况),业务再次使用该损坏连接的时候会发起重连(JDBC内部机制)并尝试三次,但是报如上错误(确认连接参数无问题)。这是由于jdbc内部重连上后会发送“SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ” 请求,而该请求在0.0.2版本的Atlas中不支持(可升级0.1解决),只会影响当前请求,不影响这个连接下一次的使用。


服务器端
很明显, MySQL认为读到了一个错误的包,并将该连接Aborted了, 在errlog中记下这个warning, 通过show global status like '%Aborted_clients%' 可以看到Aborted_clients 值的增加。
出现该warning主要是因为客户端没有正常调用mysql_close()退出。我们针对php、python、perl做测试如下:
1) python 代码如下:

运行该程序, 在另一个Term中kill 或者 kill -9 该进程, 在MySQL errlog中均会出现如上warning
运行该程序, 然后按下 crtl + c 中断该程序, 在MySQL errlog中没有出现如上waring
2)php 代码如下:

运行该程序,在另一个Term中kill 或者 kill -9 该进程, 在MySQL errlog中均会出现如上warning
运行该程序, 然后按下 crtl + c 中断该程序, 在MySQL errlog中出现如上waring
3)perl 代码如下:

运行该程序,在另一个Term中kill 或者 kill -9 该进程, 在MySQL errlog中均会出现如上warning
运行该程序, 然后按下 crtl + c 中断该程序, 在MySQL errlog中出现如上waring
注: 通过测试,发现python、php、perl 对 crtl + c (同 kill -2) 处理方式不同,仅python 对 kill -2 信号处理调用了 mysql_close() 正常关闭MySQL连接。
2.[Warning] Access denied for user 'test'@'localhost' (using password: YES)
服务器端报此错误,主要是客户端连接的时候使用了错误的密码。
创建测试用test, 并赋予test库的增删改查权限:

1) 在终端使用错误的密码连接MySQL结果如下:

可以看到此时客户端报用户无权限连接 ERROR, 而此时服务器端errlog中会出现如上的warning
2) 在终端连接没有权限的database 结果如下:

此时客户端报没有权限连接MySQL库, 而服务器端errlog中没有任何warning出现
3.[Warning] Aborted connection 104643 to db: 'test' user: 'root' host: 'localhost' (Got timeout reading communication packets)
主要是客户端连接在wait_timeout 时间范围内都无操作,服务器端会断开此连接
1)首先我们设置wait_timeout值为10秒

2) 等待超过10s后服务器端报错如下:

3) 再在MySQL客户端中发起操作会报ERROR : MySQL server has gone away

4.[Warning] Aborted connection 104660 to db: 'test' user: 'root' host: 'localhost' (Got a packet bigger than 'max_allowed_packet' bytes)
此warning主要是因为客户端向服务器端传送了大于max_allowed_packet 指定大小的包所导致。测试如下:
1) 首先将数据通过mysqldump命名将数据导出

默认mysqldump会将数据导出成多个insert into语句, 每个语句大小接近1M
2)设置max_allowed_packet = 524288

3) 再使用MySQL命令将hostname.sql 导入结果如下:

服务器errlog中会报如上warning
转自meituan wk
MySQL服务器端&客户端常见错误的更多相关文章
- Mysql:1236常见错误
常见的error 1236 报错一, logevent超过max_allowed_packet 大小 1. Got fatal error 1236 from master when reading ...
- Mysql 启动失败常见错误
各位可以按照顺序逐条拍错. mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file (/opt/my ...
- windows系统上安装mysql操作过程及常见错误处理
1.下载mysql免安装版本,下载地址:http://dev.mysql.com/downloads/mysql/ 解压到自己的目录 2.编辑配置文件: 新建一个文本文件,修改名称及后缀为my.ini ...
- MySQL Backup--Xtrabackup备份常见错误
1.DDL操作与Xtrabackup备份冲突 当MySQL使用xrabckup进行备份时,如果执行DDL进行表修改,会导致xrabckup备份失败. 错误类似于: InnoDB: Last flush ...
- mysql / mysqld_safe / mysqld 常见错误处理
1. FATAL ERROR: Could not find ./bin/my_print_defaults [root@localhost scripts]# ./mysql_install_db ...
- 关于http客户端常见错误"警告:Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is rec"
在开发过程中,经常得写http客户端测试接口服务,今天在使用过程中出现了这样的一个警告: 警告: Going to buffer response body of large or unknown s ...
- mysql几个常见错误记录
select时找不到表:大小写问题 show variables like '%lower_case_table_names%'; MySQL表名大小写敏感导致的问题 使用help_topic时的se ...
- mysql replication常见错误整理
这篇文章旨在记录MySQL Replication的常见错误,包括自己工作中遇到的与网友在工作中遇到的,方面自己及别人以后进行查找.每个案例都是通过Last_IO_Errno/Last_IO_Erro ...
- MySQL常见错误类型
MySQL常见错误类型:1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010: ...
随机推荐
- 黑马基础阶段测试题:创建一个存储字符串的集合list,向list中添加以下字符串:”C++”、”Java”、” Python”、”大数据与云计算”。遍历集合,将长度小于5的字符串从集合中删除,删除成功后,打印集合中的所有元素
package com.swift; import java.util.ArrayList; import java.util.List; import java.util.ListIterator; ...
- [NOI2007]货币兑换Cash
Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 6353 Solved: 2563[Submit][Status][Discuss] Descriptio ...
- 数据库sql语句的exists和in的区别
性能变化的关键: #1 执行的先后顺序 谁是驱动表,谁先执行查询,谁后执行查询 #2 执行过程 exists的优点是:只要存在就返回了,这样的话很有可能不需要扫描整个表. in需要扫描完整个表,并 ...
- JDBC的连接mySql的基本知识
这只是我自己的随笔博客~,用于偶尔回忆知识,可能存在一些错误,如有错误,欢迎指正~ 首先对于JDBC连接MySQL,要了解基本的框架结构 画的比较烂,大约就是这样的结构 然后看一下具体实现的 代码:: ...
- Linux运维常用命令详解
1.ls 文件属性: -:普通文件 d:目录文件 b:块设备 c:字符设备文件 l:符号连接文件 p:命令管道 s:套接字文件 文件权限: 9位数字,每3位一组 文件硬链接次数 文 ...
- selinux详解及配置文件
selinux详解 selinux 的全称是Security Enhance Linux,就是安全加强的Linux.在Selinux之前root账号能够任意的访问所有文档和服务 : 如果某个文件设为7 ...
- 25.VUE学习之-单击和双击事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Codeforces Round #462 (Div. 2) D. A Determined Cleanup
D. A Determined Cleanup time limit per test1 second memory limit per test256 megabytes Problem Descr ...
- TI C6000优化手册——让代码看起来像钉子
DSP芯片的出现,是为了解决大量的数字运算问题.通过集成专用的加法器.乘法器.地址产生器.复杂逻辑等硬件单元,DSP能实现比普通单片机更快速的数字运算,使处理器更适用于实时性高.复杂度强的处理场合.也 ...
- 笔记-python-lib-re
笔记-python-lib-re 1. re模块简介 re模块提供了与perl类似的正则匹配功能. 要搜索的模式和字符串都可以是Unicode字符串(str)以及8位字符串(bytes).但 ...