1. 程式人生 > 其它 >mysql ERROR 1396 (HY000): Operation CREATE USER failed 解決辦法

mysql ERROR 1396 (HY000): Operation CREATE USER failed 解決辦法

原因:MySQL賬戶表中已經存在這個要建立的使用者

操作分析:
當建立新使用者時會提示這個新使用者建立失敗,但是當解決建立失敗的問題後再次重新建立這個新使用者,則會報這個錯誤

# 建立新使用者,提示root使用者沒有SYSTEM_USER許可權,建立失敗
mysql> create user 'proxysql'@'192.168.20.%' identified  with mysql_native_password by 'iD!^^EjU#Yxr5$p';
ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation

# 解決root使用者沒有SYSTEM_USER許可權的問題
mysql> grant system_user on *.* to 'root';
Query OK, 0 rows affected (0.00 sec)

# 再次建立該使用者提示報錯
mysql> create user 'proxysql'@'192.168.20.%' identified  with mysql_native_password by 'iD!^^EjU#Yxr5$p';
ERROR 1396 (HY000): Operation CREATE USER failed for 'proxysql'@'192.168.20.%'

# 實際情況是在第一次建立時,雖然提示root使用者沒有SYSTEM_USER許可權,但是mysql.user表中已經有這個使用者了

# 解決辦法,刪除這個使用者資訊,然後重新建立即可

mysql> drop user 'proxysql'@'192.168.20.%'
mysql> delete from mysql.user where user = 'proxysql'@'192.168.20.%';
mysql> delete from mysql.db where user = 'proxysql'@'192.168.20.%';
mysql> flush privileges;

mysql> create user 'proxysql'@'192.168.20.%' identified  with mysql_native_password by 'iD!^^EjU#Yxr5$p';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT USAGE,process,replication slave,replication client ON *.* TO 'proxysql'@'192.168.20.%' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)