mysql常见错误汇总

这篇具有很好参考价值的文章主要介绍了mysql常见错误汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mysql常见错误汇总

列别名问题

  1. 可以在查询选择列表中使用别名为列提供 不同名称。可以使用 、 或子句中的别名来引用该列:GROUP BY ORDER BY HAVING
SELECT SQRT(a*b) AS root FROM tbl_name
  GROUP BY root HAVING root > 0;
  
SELECT id, COUNT(*) AS cnt FROM tbl_name
  GROUP BY id HAVING cnt > 0;
  
SELECT id AS 'Customer identity' FROM tbl_name;
  1. 标准 SQL 不允许在子句中引用列别名。此限制是施加的 因为当评估子句时, 列值可能尚未确定。

例如,以下查询是非法的:WHERE

SELECT id, COUNT(*) AS cnt FROM tbl_name
  WHERE cnt > 0 GROUP BY id;

子句确定哪些行 应包含在条款中, 但它指的是未知的列值的别名 直到选择行并按 .WHERE GROUP BY GROUP BY

  1. 在查询的选择列表中,带引号的列别名可以是 使用标识符或字符串引号字符指定:
SELECT 1 AS `one`, 2 AS 'two';
  1. 在声明的其他地方,引用了对别名的引用 必须使用标识符引用,否则引用被视为 字符串文字。例如,此语句按 列中的值,使用 别名:id ‘a’
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
  GROUP BY `a`;

例如,以下查询是非法的

此语句按文本字符串分组,并且无法按预期工作:'a'

SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
  GROUP BY 'a';

使用 DATE 列的问题

日期值的格式为

根据标准 SQL,不允许使用其他格式。你 应该在 UPDATE 表达式和 SELECT 语句的子句中使用此格式。

例如:‘YYYY-MM-DD’ ‘WHERE’

SELECT * FROM t1 WHERE date >= '2003-05-05';

为方便起见,MySQL会自动将日期转换为 数字(如果日期用于数字上下文),

MySQL还允许在以下情况下使用“宽松”字符串格式

INSERT INTO t1 (idate) VALUES (19970505);
INSERT INTO t1 (idate) VALUES ('19970505');
INSERT INTO t1 (idate) VALUES ('97-05-05');
INSERT INTO t1 (idate) VALUES ('1997.05.05');
INSERT INTO t1 (idate) VALUES ('1997 05 05');
INSERT INTO t1 (idate) VALUES ('0000-00-00');

SELECT idate FROM t1 WHERE idate >= '1997-05-05';
SELECT idate FROM t1 WHERE idate >= 19970505;
SELECT MOD(idate,100) FROM t1 WHERE idate >= 19970505;
SELECT idate FROM t1 WHERE idate >= '19970505';

但是,以下语句不起作用:

SELECT idate FROM t1 WHERE STRCMP(idate,'20030505')=0;

STRCMP是一个字符串函数, 因此,它会转换为格式的字符串并执行字符串比较。它不会转换为日期并执行日期比较。所以报错

空值问题

NULL与空字符串不是一回事

例如, 以下陈述完全不同:NULL

INSERT INTO my_table (phone) VALUES (NULL);
 INSERT INTO my_table (phone) VALUES ('');

这两个语句都在列中插入一个值,但第一个语句插入一个值,第二个语句插入一个空值 字符串。

第一个的含义可以看作是“电话号码未知”和 第二种可以看作是“该人已知 没有电话,因此没有电话号码。phoneNULL

可以使用 IS NULL 和 IS NOT NULL 运算符和 IFNULL() 函数来查看

在 SQL 中,NULL 与任何其他值相比,该值永远不会为真除非另有说明

示例 返回值是NULL

SELECT NULL, 1+NULL, CONCAT('Invisible',NULL);

对于任何表达式都从不为 true:NULLexpr = NULLexpr = NULL

SELECT * FROM my_table WHERE phone = NULL;

若要查找值,必须使用 IS NULL测试。

以下语句显示如何查找电话NULL号码和’ '电话号码:

SELECT * FROM my_table WHERE phone IS NULL;
SELECT * FROM my_table WHERE phone = ' ';

COUNT 它计算行和 不是单个列值。例如,以下 语句生成两个计数。第一个是计数 表中的行数,第二个是 列中的非值数:NULL NULLage

SELECT COUNT(*), COUNT(age) FROM person;

使用 MySQL 程序时的常见错误

1 拒绝访问

Access denied

一个错误可以有很多 原因。通常问题与MySQL帐户有关 服务器允许客户端程序在以下情况下使用 连接

2 无法连接到[本地] MySQL服务器

Can’t connect to [local] MySQL server

查看是否可以ping通 如果不可以检查防火墙是否放行 如果可以检查端口是否被占用 线程是否成功开启

3 与 MySQL 服务器的连接丢失

Lost connection to MySQL server

检查一下网络问题 如果是本机查看防火墙和端口

4 以交互方式输入密码失败

加一个-p

Password Fails When Entered Interactively

 mysql -u user_name -p

5 连接过多

Out of memory

这意味着 MySQL 没有足够的内存来 存储整个查询结果:

mysql: Out of memory at line 42, 'malloc.c'
mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)
ERROR 2008: MySQL client ran out of memory

要解决此问题,请首先检查查询是否 正确。

它应该返回这么多行是否合理? 如果没有,请更正查询,然后重试。

否则,可以 使用 -quick 选项调用 MySQL 主要,这会减少 客户端上的负载(但服务器上的负载更多)

7 MySQL 服务器已消失

MySQL server has gone away
mysql常见错误汇总,数据库,mysql,数学建模,java,数据库,缓存

这个需要可以去日志中去具体查看

细致分析错误

错误1

ERROR 1044 (42000):Access denied for user

错误解析

数据库拒绝

解决

常见于用户授权不足。可登陆root用户,变更当前用户的对应权限。

错误2

ERROR 1045 (28000): Access denied for user *** (using password: YES

错误解析

数据库拒绝,登录密码错误

解决

核实登录密码

错误3

ERROR 1054 (42S22): Unknown column *** in ‘where clause’

错误解析

根据限定条件无法找到指定的列内容

解决

检查输入的列内容及限制条件是否正确

错误4

ERROR 1064 (42000): You have an error in your SQL syntax;

错误解析

语法错误:在语句中出现错误

解决
  1. 检查语法是否符合规定的语法规则,如登录时@符号后是否有空格

  2. 查看是否使用了保留字,找到对应的保留字,不是必须的建议修改,尽量不和保留字冲突。如果确实得用 ,就用反引号(’ ‘)把内容引起来

错误5

ERROR 1072 (42000): Key column ‘***’ doesn’t exist in table

错误解析

引用的***字段,不存在

解决

检查是否拼写错误

错误6

ERROR 1130: Host 10.0.0.1 is not allowed to connect to this MySQL server

错误解析

不允许通过ip地址10.0.0.1访问指定数据库

解决

指定登录主机信息错误。登录root用户,修改用户登录主机信息

错误7

ERROR 1133 (42000): Can’t find any matching row in the user table

错误解析

在user表中未找到指定的用户

解决

可以用flush privileges;刷新一遍,再试。如果还不行的话,核实用户信息是否正确,存在。

错误8

ERROR 1142 (42000): CREATE command denied to user ‘guest04’

错误解析

数据库拒绝执行创建命令,‘guest04’无相关的授权

解决

可以用flush privileges;刷新一遍,再试。如果还不行的话,核实用户信息是否正确,存在。

错误9

ERROR 1144 (42000): Illegal GRANT/REVOKE command;

错误解析

授权内容不合法

解决

修改成合法的

错误10

ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation

错误解析

数据库拒绝执行,原因是没有取得相应动作的授权(此处为创建用户)

解决

查看确认授权情况。确实有需要,在root用户登陆后添加相应授权

错误11

ERROR 1241 (21000): Operand should contain 1 column(s)

错误解析

进行子查询的时候,选项需要1列但选择对象不唯一。

解决

选择唯一的或者变成唯一的

错误12

ERROR 1248 (42000): Every derived table must have its own alias

错误解析

在多级查询中,派生出来的表格需要加一个别名。

解决

这是为了保证每个派生出来的表都需要有一个自己的别名。

错误13

ERROR 1701 (42000): Cannot truncate a table referenced

错误解析

清空失败,还有外键关联的情况下,无法情况当前数据表

解决

解决外键就好了

错误14

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

错误解析

密码策略异常信息:格式不符合当前密码格式需求

解决

换一个

错误15

ERROR 2002 (HY000): Can’t connect to local MySQL server through [socket] ‘/tmp/mysql.sock’ (2)

错误解析

mysql的服务端,服务未启动,或者出现mysql进程异常 ,通过mysql.server status查看文章来源地址https://www.toymoban.com/news/detail-543217.html

解决
手动重启一下mysql服务,windows找到mysql服务,macbook中系统偏好中找到mysql服务重启
或者执行命令
 sudo /usr/local/mysql/support-files/mysql.server stop
 sudo /usr/local/mysql/support-files/mysql.server start

到了这里,关于mysql常见错误汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库的DDL语法汇总

    DDL(数据定义语言):针对数据库对象结构的操作,如:数据库、表、视图、索引等 DML(数据操纵语言):对数据库对象中的数据进行操作,比如数据的增删改查 DCL(数据控制语言):授权及取消授权等 TCL(事务控制语言):对事务的控制,如事务的提交及回滚 创建数据库

    2024年02月09日
    浏览(56)
  • mysql数据库常见数据类型

    数据类型: MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 INT是INTEGER的同义词,DEC是DECIMAL的同义词。 BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、Inn

    2024年02月15日
    浏览(59)
  • 算法、数据结构、计算机系统、数据库MYSQL、概率论、数学实验MATLAB、数学建模、马原、英语、杂项、QT项目

    可以三个条件 以此类推 (condition1)?x:(condition2)?y:z string变成int int 变成string 可以用循环 模运算展开式推导 我们要证明等式: (a * b) mod m = ((a mod m) * (b mod m)) mod m 假设 a = q1 * m + r1 ,其中 q1 是 a 除以 m 的商, r1 是 a 除以 m 的余数。类似地,假设 b = q2 * m + r2 ,其中

    2024年02月08日
    浏览(66)
  • 还原Sql Server数据库BAK备份文件的三种方式及常见错误

    这是演示的是Sql Server 2008R2版本,不同版本可能有细微差别 右键点击数据库→还原数据库    在还原的源中选择源设备→点击选择框  在指定备份中点击添加→选择具体文件→确定→确定  勾选用于还原的备份集→这时目标数据库中会自动生成目标数据库名,在此选择即可→

    2023年04月08日
    浏览(71)
  • docker安装mysql、clickhouse、oracle等各种数据库汇总

    1:docker 安装mongo数据库并使用 官网:https://www.mongodb.com/docs/manual/ mongo shell教程1:http://c.biancheng.net/mongodb2/connection.html 安装1 :https://www.zhihu.com/question/54602953/answer/3047452434?utm_id=0 安装2:https://www.duidaima.com/Group/Topic/ArchitecturedDesign/9182 使用驱动进行java开发:https://mongodb.github.

    2024年02月10日
    浏览(53)
  • MySQL数据库安全配置:如何防范常见的攻击

    MySQL数据库安全性是在网络环境中运行MySQL数据库的关键问题之一。数据库安全性是确保数据完整性、机密性和可用性的过程。MySQL数据库安全性涉及到数据库系统的安全性、数据安全性和系统安全性等方面。 MySQL数据库安全性的主要问题是数据库攻击。数据库攻击是指通过网

    2024年04月12日
    浏览(36)
  • MySQL数据库增删改查及聚合查询SQL语句学习汇总

    目录 数据库增删改查SQL语句 MySQL数据库指令 1.查询数据库 2.创建数据库 3.删除数据库 4.选择数据库 创建表table   查看所有表 创建表 查看指定表的结构 删除表 数据库命令进行注释 增删改查(CRUD)详细说明 增加 SQL库提供了关于时间的函数:now()  查询 查询表作列与列之间进

    2024年02月09日
    浏览(86)
  • MYSQL数据库连接池及常见参数调优

    数据库连接池是一种用于优化数据库连接的技术,它通过在应用程序和数据库之间建立一个连接池来管理和复用数据库连接,以提高数据库访问效率和性能。数据库连接池通常包含以下参数: 初始连接数(initialSize):连接池初始建立的连接数; 最小连接数(minIdle):连接

    2024年02月05日
    浏览(62)
  • mysql常见错误汇总

    可以在查询选择列表中使用别名为列提供 不同名称。可以使用 、 或子句中的别名来引用该列: GROUP BY ORDER BY HAVING 标准 SQL 不允许在子句中引用列别名。此限制是施加的 因为当评估子句时, 列值可能尚未确定。 例如,以下查询是非法的: WHERE 子句确定哪些行 应包含在条款

    2024年02月13日
    浏览(40)
  • MySQL Shell连接数据库报MySQL Error 1045 (28000)错误浅析

    这里简单总结一下mysql shell访问数据库时报MySQL Error 1045 (28000): Access denied for user \\\'root\\\'@\\\'::1\\\' (using password: YES)的原因以及如何解决这个问题 这里测试的环境为MySQL 8.0.35,我们先来看看报错案例: 先用root账号连接数据(socket方式),检查用户信息,如下所示,root账号限定为localhost 然

    2024年02月05日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包