Skip to content

常用错误码速查 ​

本页只提供首查方向。错误文本、SQLSTATE 和触发条件可能随版本、客户端和会话模式变化;继续排查连接、锁或查询问题时见常见问题与避坑指南。

连接与权限 ​

错误码典型信息首查方向
1040Too many connections比较 max_connections、Threads_connected、Max_used_connections 和应用连接池总峰值,先排除泄漏
1045Access denied for user核对用户名、来源主机、密码、认证插件和 SHOW GRANTS;不能仅凭错误码判断是密码还是权限问题
2003Can't connect to MySQL server检查服务状态、监听地址、端口、DNS、防火墙和 TLS 配置
2006MySQL server has gone away这是客户端侧连接已断开;检查服务端错误日志、网络/负载均衡、空闲超时、查询超长和数据包大小
2013Lost connection during query检查服务端是否终止连接、网络抖动、超时配置和导致会话中断的长语句

客户端错误码 2006、2013 不是由服务端错误码表单独决定。先保存客户端完整异常和服务端同一时间点日志,再调整 wait_timeout、net_read_timeout 或 max_allowed_packet 等参数。

SQL 与数据 ​

错误码典型信息首查方向
1062Duplicate entry for key读取完整索引名和重复值;比较并发写入与幂等键。只有业务确实允许覆盖时才选择 ON DUPLICATE KEY UPDATE,不要用 INSERT IGNORE 掩盖数据问题
1064SQL syntax or not exist error按错误位置检查语法、引号、保留字、sql_mode 和生成 SQL 的客户端版本
1146Table doesn't exist核对当前默认数据库、schema、对象大小写和权限
1213Deadlock found when trying to get lock查看 SHOW ENGINE INNODB STATUS 的最新死锁,比较事务顺序和扫描范围
1205Lock wait timeout exceeded查看持锁事务、锁图和长事务;提高超时只会延迟失败,不解决阻塞
1292Truncated incorrect value检查目标列类型、日期格式和严格模式;非严格模式可能降级为警告并写入不同值
1366Incorrect string value同时核对连接字符集、列字符集、无效字节和客户端编码
1452Foreign key constraint fails检查父记录、外键值、字段类型/排序规则和插入、删除顺序

存储与结构 ​

错误码典型信息首查方向
1114Table is full检查文件系统空间、表空间容量、存储引擎上限以及 MEMORY 表的内存配置;不能只改一个数据文件参数
3140Invalid JSON text检查 JSON 字符串的引号、转义、编码和函数返回值

处理原则是先恢复业务或隔离故障,再保留现场并定位根因。调大超时、删除冲突、关闭约束或切换 SQL Mode 都可能改变业务语义,必须写入变更记录并验证回滚条件。

Released under the MIT License.