問題簡介:
創建完用戶給用戶賦權的時候報錯:ERROR 1410 (42000): You are not allowed to create a user with GRANT
問題復現
創建備份用戶命令:
use mysql;
CREATE USER backup IDENTIFIED BY 'backup';
緊接着賦權給用戶(限制本地登錄):
GRANT SELECT, RELOAD, SHOW DATABASES, LOCK TABLES ON . TO 'backup'@'127.0.0.1';
出現報錯:ERROR 1410 (42000): You are not allowed to create a user with GRANT
問題原因
在用命令 CREATE USER backup IDENTIFIED BY 'backup';創建完用戶后,用戶默認的權限為'%'
所以想要賦予@'127.0.0.1'給test用戶的解決辦法為:
GRANT SELECT, RELOAD, SHOW DATABASES, LOCK TABLES ON . TO 'test'@'%';
update user set host='127.0.0.1' where user='test';
或者直接在創建用戶的時候指定連接權限,eg:
CREATE USER test@'127.0.0.1' IDENTIFIED BY 'test';
GRANT SELECT, RELOAD, SHOW DATABASES, LOCK TABLES on . to 'test'@'127.0.0.1' ;
flush privileges;
MySQL8.0完整創建用戶命令
use mysql;
CREATE USER admin IDENTIFIED BY 'admin';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' with grant option;
use mysql;
CREATE USER test@'127.0.0.1' IDENTIFIED BY 'test';
grant select, insert, update, delete,CREATE,DROP,REFERENCES,ALTER,INDEX,LOCK TABLES on *.* to 'test'@'127.0.0.1' ;