mysql常见的十种错误简要说明

  1. 错误1064 - SQL语法错误:

    • 当SQL查询存在语法错误时会发生这种错误。请仔细检查查询以查找并纠正错误。
  2. 错误1045 - 拒绝访问:

    • 当用户尝试连接到数据库但没有正确的权限或密码不正确时,会发生此错误。
  3. 错误2002 - 通过套接字无法连接到本地MySQL服务器:

    • 当MySQL服务器未运行或套接字文件路径不正确时,会发生此错误。
  4. 错误1054 - 未知列:

    • 当引用表中不存在的列时会发生此错误。
  5. 错误1146 - 表不存在:

    • 当尝试查询或操作不存在于指定数据库中的表时,会发生此错误。
  6. 错误1215 - 无法添加外键约束:

    • 当外键约束存在问题时,比如数据类型不匹配时,会发生此错误。
  7. 错误1364 - 字段没有默认值:

    • 当尝试向表中插入新记录,而该表中的某个列被定义为NOT NULL并且没有提供该列的值时,会发生此错误。
  8. 错误1005 - 无法创建表 (errno: 150):

    • 当外键约束存在问题时,例如引用的列或键不存在时,会发生此错误。
  9. 错误1030 - 来自存储引擎的错误 28:

    • 表示MySQL服务器在服务器上的磁盘空间不足。
  10. 错误2006 - MySQL服务器已断开连接:

    • 当MySQL服务器中断了空闲连接时会发生此错误。可能是由于长时间运行的查询或服务器资源不足引起的。

解决方法:

  1. 错误1064 - SQL语法错误:

    • 仔细检查你的SQL查询语句,确保所有的语法都是正确的。可以使用数据库管理工具或命令行来执行查询,以查看是否有更具体的错误消息。常见的问题包括拼写错误、缺少必要的关键字或标点符号。如果查询很长,可以逐步添加它们,以便找到引起错误的部分。
  2. 错误1045 - 拒绝访问:

    • 确保你使用的用户名和密码是正确的。检查连接字符串或配置文件中的数据库凭据,并确保它们与数据库服务器中的用户凭据匹配。如果密码忘记了,可能需要重置密码。还要确保用户具有连接到数据库的适当权限。
      例如CentOS 7系统上忘记了MySQL的密码可以这么解决:

. 停止MySQL服务:

bash 复制代码
sudo systemctl stop mysqld
  1. 以跳过权限表的方式启动MySQL:

    bash 复制代码
    sudo mysqld_safe --skip-grant-tables &
  2. 使用mysql客户端连接到MySQL服务器:

    bash 复制代码
    mysql -u root
  3. 选择使用mysql数据库:

    sql 复制代码
    use mysql;
  4. 重置root用户密码:

    sql 复制代码
    UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';

    在这里,将 new_password 替换为你想要设置的新密码。

  5. 刷新权限表:

    sql 复制代码
    FLUSH PRIVILEGES;
  6. 退出MySQL:

    sql 复制代码
    exit;
  7. 停止MySQL服务:

    bash 复制代码
    sudo systemctl stop mysqld
  8. 重新启动MySQL服务:

    bash 复制代码
    sudo systemctl start mysqld

3... 错误2002 - 通过套接字无法连接到本地MySQL服务器:

  • 首先确保MySQL服务器正在运行。你可以尝试使用命令行或管理工具连接到服务器,以确认它是否可用。如果MySQL服务器未运行,请启动它。
  • 如果是通过套接字连接的问题,检查MySQL配置文件中的套接字路径是否正确。默认情况下,MySQL可能使用标准套接字路径,但也可能根据配置进行更改。
  • 你还可以尝试使用IP地址而不是套接字连接,看看是否解决了问题。这可以通过在连接字符串中指定主机地址来实现。

4. **错误1054 - 未知列:**

  • 确保你在查询中引用的列确实存在于所指定的表中。检查列名的拼写和大小写,确保没有误差。
  1. 错误1146 - 表不存在:

    • 确保你正在操作的表确实存在于指定的数据库中。检查表名的拼写和大小写,确保没有误差。你可能需要创建表或者在正确的数据库中执行操作。
  2. 错误1215 - 无法添加外键约束:

    • 检查外键约束的定义,确保引用的列的数据类型与被引用的列的数据类型匹配。确保引用的表和被引用的表都存在,并且引用的列具有相同的数据类型和大小。
  3. 错误1364 - 字段没有默认值:

    • 提供插入操作中涉及的每个列的值,包括定义为NOT NULL的列。确保你没有忽略必须提供值的列。
  4. 错误1005 - 无法创建表 (errno: 150):

    • 检查外键约束的定义,确保引用的列或键存在于相应的表中。确保数据类型匹配,并且被引用的列没有定义为NOT NULL而没有提供默认值。
  5. 错误1030 - 来自存储引擎的错误 28:

    • 这表示磁盘空间不足。清理服务器上的磁盘空间,删除不必要的文件,或者考虑将数据库移动到具有足够空间的磁盘上。
  6. 错误2006 - MySQL服务器已断开连接:

    • 检查服务器日志以获取更多信息。这可能是由于服务器资源不足、网络问题或连接超时引起的。确保你的MySQL服务器正常运行,网络连接稳定,查询不会导致资源耗尽。你可能需要调整连接超时设置或优化查询。
相关推荐
海鸥-w5 分钟前
用python (fastapi)做项目第一天创建项目结构,数据建表,ORM配置安装,写第一个接口
数据库·python·fastapi
zfoo-framework21 分钟前
通过redis-cli+lua脚本查询redis数据
数据库·redis·lua
牛栓柱33 分钟前
【后端实战】用 Supabase + React/TS 零成本构建高并发 Multi-Agent 服务
前端·数据库·人工智能·后端·react.js·前端框架
yuezhilangniao36 分钟前
xtr备份prepare到底变化了啥
mysql
yyk的萌38 分钟前
创建属于自己的mysql的mcp
mysql·adb·ai·mcp
流烟默38 分钟前
腾讯云Centos7.6使用yum安装MySQL8
mysql·centos·腾讯云
仙俊红43 分钟前
如何优化 MySQL 深分页 SQL
android·sql·mysql
yyuuuzz1 小时前
谷歌云基础服务的入门认知
linux·运维·服务器·数据库·人工智能·github
超梦dasgg1 小时前
工作中 MySQL 读写分离主从延迟:成因、影响、落地方案、生产实战处理
数据库·mysql
Wonderful U2 小时前
Python+Django实战:打造智能生鲜果蔬进销存管理系统(采购入库、库存预警、销售开单、毛利统计)
数据库·python·django