MySQL 8.0 使用时遇到的一些报错及解决方法


前言

最近在完成一门课程的大作业时用到了mysql,所以就顺便入手了一些mysql8.0,当然在使用过程中也遇到了一些小问题,于是记录在此以便复习.

####运行环境说明:
->ubuntu version: 20.04
->MySql version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)


问题一:ERROR 1064 (42000)

完整问题描述:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘xxxxxx’ at line x

问题解析:
我认为这是最容易遇到的问题,发生的原因就是语法错误,再无其他

问题解决:
仔细检查语法问题,比如:
括号匹配

mysql> create table ttt (
    -> xxx char,
    -> xxxx char;
    //缺少括号

逗号冗余

mysql> create table ttt (
    -> xxx char,
    //逗号冗余
    -> );

中英文字符切换

该错误太过基础故不作示例

关键字遗忘

mysql> create test(
//缺少 table 关键字
    -> xxx char
    -> );
    

问题一虽然很简单但非常容易遇到,一定要规范自己的行文风格,避免低级报错。

此处再补充一个冷门的,非语法错误导致的1064报错原因:
在MySQL 8.0+ 版本中,数据库系统是不允许用户使用赋值语句grant来创建新用户的!!!

首先进入mysql数据库下查看user表的用户

mysql> select user from user;
+------------------+
| user             |
+------------------+
| customer         |
| damn             |
| default_1        |
| default_2        |
| debian-sys-maint |
| mysql.infoschema |
| mysql.session    |
| mysql.sys        |
| root             |
+------------------+
9 rows in set (0.00 sec)

接下来尝试使用grant语句创建新用户new并为其赋予权限

mysql> grant all privileges on *.* to 'new'@'%' identified by '123456';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1
mysql> 

可以发现这里是报错了的,所以在使用MySQL8.0版本创建用户时应该使用常见的 create 语句,创建后再赋值。


问题二、ERROR 1822 (HY000)

问题完整描述:

ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint ‘xxxx’ in the referenced table ‘xxxxx’

问题解析:该问题一般是在设置新表的外键约束时出现的,原因就是外键约束引用的不是外表的主键

问题解决:重新设置外键约束,或者修改外表的主键即可


问题三、ERROR 3619

问题完整描述:

错误号:3619::符号:ER_ILLEGAL_PRIVILEGE_LEVEL; SQLSTATE:HY000
消息:为%s指定了非法特权级别

问题解析:该问题是我在为用户赋值时发生的,我先对用户赋予了select,insert权限,当赋予updata权限时发生了该错误。我查阅了很多资料,最后还是没有解决该错误,如果读者朋友对该问题有自己的见解或解决方法,还请不吝赐教!

问题解决:暂无


猜你喜欢

转载自blog.csdn.net/weixin_45704680/article/details/121336276