mysql常见错误有哪些_错误类型快速了解

来源:这里教程网 时间:2026-02-28 20:45:38 作者:

MySQL常见错误主要分五类:连接失败、权限拒绝、SQL语法或逻辑错误、存储引擎异常、资源耗尽。掌握这五类的典型表现和对应错误码,能大幅缩短排查时间。

连接失败类错误

这类错误表现为客户端根本连不上MySQL服务,通常不是SQL问题,而是环境或配置层面的阻断。

2002:本地Socket连接失败,常见于MySQL未启动、
mysql.sock
路径错误或文件被删
2003:TCP/IP连接拒绝,多因MySQL未监听网络端口、防火墙拦截、host配置为
127.0.0.1
却用
localhost
(触发socket而非TCP)
2006 / 2013:连接中途断开,常由超时(
wait_timeout
)、网络抖动、中间件异常或服务意外终止引起

权限拒绝类错误

能连上但立即被拒,说明认证或授权环节出问题,重点检查用户、密码、主机白名单和具体对象权限。

1045:用户名或密码错误,最常见;也可能是认证插件不兼容(如
caching_sha2_password
插件缺失)
1130:用户从指定host(如
'user'@'192.168.1.100'
)连接被拒绝,实际只允许
'user'@'localhost'
1044 / 1141 / 1142:已登录,但无权访问某数据库、表或字段,需用
SHOW GRANTS FOR 'user'@'host';
核对权限

SQL执行类错误

语句能提交,但在解析、优化或执行阶段报错,多数可直接从错误消息定位到具体字段、表名或语法位置。

1049:数据库不存在——检查
USE db_name;
或SQL中引用的库名拼写
1146:数据表不存在——注意大小写敏感性(Linux下表名区分大小写)、引擎类型(如
INFORMATION_SCHEMA
里查不到临时表)
1054:字段不存在——别名使用不当、表连接遗漏ON条件、或SELECT中引用了未定义的列别名 1064:SQL语法错误——常见于引号不闭合、关键字拼错(如
INTO
写成
INTO
)、或MySQL版本不支持的语法(如8.0+的
VALUES TABLE
在5.7不可用)

存储与数据一致性类错误

涉及InnoDB事务、外键、死锁、字符集等底层机制,往往伴随数据完整性风险,需谨慎处理。

1213:死锁发生,MySQL自动回滚其中一方事务;可通过
SHOW ENGINE INNODB STATUS;
查看最近死锁详情
1452:插入/更新违反外键约束(子表值在父表找不到);检查关联字段值、NULL设置及级联规则 1366:字符集不匹配导致插入失败,例如客户端用
utf8mb4
发送含emoji的数据,但表字段是
utf8
(仅支持3字节)
1021 / 1114:磁盘满或表已满(MyISAM达最大行数),需清理空间或调整
MAX_ROWS

资源与配置类错误

系统级限制触发,错误本身不指向业务逻辑,但会全局影响服务可用性。

1040 / 1203:连接数超限,检查
max_connections
设置、应用连接池是否泄漏、是否有长连接未释放
1037 / 1038:内存不足,排序或临时表操作失败;调大
sort_buffer_size
tmp_table_size
前先确认物理内存余量
1226:用户资源配额超限(如
MAX_QUERIES_PER_HOUR
),适用于多租户管控场景
my.cnf权限错误(如world-writable):MySQL主动忽略配置文件,导致实际运行参数与预期不符

相关推荐