0

0

mysql常见错误有哪些_mysql错误类型解析

P粉602998670

P粉602998670

发布时间:2026-03-07 07:35:10

|

105人浏览过

|

来源于php中文网

原创

error 2002、1045、1064、1030、1213 分别对应连不上、登不了、查不动、写不进、锁不住五大典型问题,本质是mysql明确提示具体故障环节:socket路径/进程状态、认证与权限配置、sql语法兼容性、磁盘空间与存储引擎、事务设计与死锁。

mysql常见错误有哪些_mysql错误类型解析

ERROR 2002ERROR 1045ERROR 1064ERROR 1030ERROR 1213——这五个错误,覆盖了你日常连不上、登不了、查不动、写不进、锁不住的绝大多数现场。它们不是随机报错,而是 MySQL 在明确告诉你:“这里卡住了,原因很具体”。

连不上 MySQL?先盯死 socket 路径和进程状态

现象:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock',或者远程连提示 Connection refused
本质不是“网络不通”,而是 MySQL 根本没在听。
实操建议:
• 用 ps aux | grep mysqld 确认进程是否存在;不存在就 sudo systemctl start mysql
• 存在但连不上?立刻查 socket 路径:mysql --socket=/tmp/mysql.sock -u root -p(手动指定路径试连);
• 路径不一致?去 /etc/mysql/my.cnf/etc/my.cnf 检查 socket 配置项是否和 ls -l /var/run/mysqld/ 下真实文件匹配;
• 别忽略权限:如果 socket 文件属主是 mysql:mysql,而你用普通用户连,可能被拒绝——临时可加 sudo,长期应配好用户组或改 mysql 用户启动方式。

登不进账号?别急着重置密码,先分清是认证失败还是权限缺失

现象:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
这不是“密码错了”就能一语带过的——它可能是:
• 密码本身错误;
• 用户只允许从 'root'@'127.0.0.1' 登录,但你用 localhost(MySQL 会走 socket,视为不同 host);
• 用户没被授予任何权限,甚至没被创建(SELECT User, Host FROM mysql.user; 看一眼);
skip-grant-tables 后忘了删配置重启,导致权限系统未加载。
实操建议:
• 先确认 host 匹配:mysql -h 127.0.0.1 -u root -pmysql -h localhost -u root -p 行为可能完全不同;
• 授权要带 host:GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'xxx'; FLUSH PRIVILEGES;
• 修改密码别用已弃用的 PASSWORD() 函数(MySQL 8.0+ 不支持),改用 ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx';

极简智能王
极简智能王

极简智能- 智能聊天AI绘画,还可以创作、编写、翻译、写代码等多种功能,满足用户生活和工作的多方面需求

下载

SQL 一执行就报错?1064 往往不是语法问题,而是版本/引号/保留字陷阱

现象:ERROR 1064 (42000): You have an error in your SQL syntax,但语句在别的环境能跑。
常见真因:
• MySQL 版本差异:比如 JSON_EXTRACT 在 5.7 才正式支持,5.6 里用会直接报 1064;
• 引号混用:字段名用了双引号 "id"(标准 SQL),但 MySQL 默认用反引号 `id`,开启 ANSI 模式才认双引号;
• 用了保留字当列名:比如 ordergrouprank,不加反引号必报错;
• 客户端自动补全了 BOM 或不可见字符(尤其从 Excel 或网页复制 SQL 时)。
实操建议:
• 查版本:SELECT VERSION();
• 所有标识符统一用 ` 包裹,哪怕看起来没必要;
• 在命令行用 mysql -e "your_sql_here" 直接执行,绕过 GUI 工具的转义干扰;
• 用 EXPLAIN FORMAT=TREE(8.0+)或 EXPLAIN 看执行计划前,先确保语句能 parse 通。

查着查着就断连?2013 错误背后是 wait_timeout + 连接池健康检查缺位

现象:pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query'),尤其在 Flask/Django 等框架中高频出现。
这不是网络抖动那么简单——它是连接池把“过期连接”当活连接发给了你。
根本原因:
• MySQL 的 wait_timeout(默认 28800 秒)比应用层连接池的 idle timeout 长,连接在 DB 层已被关,池子还不知道;
• 连接池没开 ping 检查(如 SQLAlchemy 的 pool_pre_ping=True),或没设 pool_recycle 主动轮换;
• 查询本身超时(max_execution_time 触发中断),但错误码仍显示为 2013。
实操建议:
• 永久调参:[mysqld] 下加 wait_timeout = 3600(1小时),避免过长空闲;
• 应用层必须启用健康检查:create_engine(..., pool_pre_ping=True, pool_recycle=3600)
• 别依赖 set global wait_timeout 临时改——它不作用于已存在的连接,只影响新连接;
• 日志里看到 2013,第一反应不是查网络,而是看 SHOW PROCESSLIST 里有没有大量 Sleep 状态连接堆积。

真正卡住人的,从来不是报什么错,而是错在哪个环节没人盯——比如 ERROR 1030 看似存储引擎故障,结果发现只是磁盘 df -h 剩 200MB;又比如 ERROR 1213 死锁日志里明明写着两行 UPDATE,却没人去看应用代码里事务是否跨了 HTTP 请求边界。错误码是路标,不是终点。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

1110

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

340

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

380

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

2048

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

379

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

1602

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

585

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

439

2024.04.29

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

1

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 844人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号