mysql设置用户权限错误解决办法:ERROR 1410 (42000): You are not allowed to create a user with GRANT
文章目录
一、错误描述
使用mysql 8.0.34
给一个已经存在的用户mall
设置权限时,使用GRANT ALL PRIVILEGES ON mall_db.* TO 'mall'@'localhost' IDENTIFIED BY 'PW'
时出现错误ERROR 1410 (42000): You are not allowed to create a user with GRANT
二、解决办法
经过网上查阅得知mysql 8.0.13
以后的版本授权指令要分开执行,但是针对的是没有创建用户的场景下,一次性创建用户和指定权限,不过本次已经提前创建了用户,只进行权限的指派,所以不是这个问题导致的。
根本原因是创建用户时没有指定用户的host
,这样系统会自动分配host
为%
,而不是localhost
,所以需要先更改host
为localhost
,使用select user,host from mysql.user
查看目前用户的host,然后执行以下指令将用户host
进行修改:
update user set host='localhost' where user='mall';
再执行以下指令指派权限:
GRANT ALL PRIVILEGES ON mall_db.* TO 'mall'@'localhost' with grant option;
问题解决