问题介绍
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;