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服务器正常运行,网络连接稳定,查询不会导致资源耗尽。你可能需要调整连接超时设置或优化查询。
相关推荐
shelby_loo34 分钟前
通过 Docker 部署 MySQL 服务器
服务器·mysql·docker
ImomoTo38 分钟前
HarmonyOS学习(十三)——数据管理(二) 关系型数据库
数据库·学习·harmonyos·arkts·鸿蒙
机器视觉知识推荐、就业指导3 小时前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
jnrjian3 小时前
export rman 备份会占用buff/cache 导致内存压力
数据库·oracle
isNotNullX4 小时前
一文解读OLAP的工具和应用软件
大数据·数据库·etl
小诸葛的博客6 小时前
pg入门1——使用容器启动一个pg
数据库
sleP4o6 小时前
Python操作MySQL
开发语言·python·mysql
大熊程序猿6 小时前
python 读取excel数据存储到mysql
数据库·python·mysql
落落落sss6 小时前
sharding-jdbc分库分表
android·java·开发语言·数据库·servlet·oracle