[MySQL 8] 授权 GRANT ALL 出现错误 ERROR 1064 (42000) You have an error in your SQL syntax

大数据学习路线图

问题介绍

MySQL8.0以前的版本通过以下代码可以实现授权:

mysql>grant all privileges on test.* to test@'%' identified by '123456';

但是MySQL8.0以后的版本,会出现:
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…的错误

可以使用如下SQL语句查询MySQL的版本:

mysql> SELECT version();

这里grant方式会报错,主要原因是MySQL版本8.0后不能再使用上面的方式。

解决方案

必须分3步来实现设置用户权限:
(1)先创建用户
(2)再对该用户分配用户权限
(3)最后刷新权限

mysql> create user test@'localhost' identified by '123456';
mysql> grant all privileges on test.* to test@'localhost';
mysql> flush privileges;