天天看點

Mysql_Faq: ERROR 1396 (HY000): Operation CREATE USER failed for ‘username’@’hostname’

suzf.net  純手工打造

Mysql_Faq: ERROR 1396 (HY000): Operation CREATE USER failed for ‘username’@’hostname’

在對mysql 權限進行管理的時候出現如下錯誤:ERROR 1396 (HY000): Operation CREATE USER failed for ‘username’@’hostname’

But 這個使用者隻真是存在的 。回想一個之前的操作 : 先是用 grant 語句建立了一個使用者,然後權限有變 用 update 更新了一下 mysql.user 的資料 。結果就出現了上面的錯誤 。

解決辦法 :删除無效/沖突的使用者授權 ,重新根據需求授權。

這就是說 MySQL 權限控制最好是使用統一的操作方式。

FLUSH PRIVILEGES不會删除使用者 ,而是從mysql資料庫中的授權表重新載入權限。

GRANT, CREATE USER, CREATE SERVER, and INSTALL PLUGIN 語句 是緩存到伺服器記憶體當中的

。該記憶體不會被釋放由相應的REVOKE, DROP USER, DROP SERVER, and UNINSTALL PLUGIN

語句,是以對于執行該語句的過多的情況下,會有增加記憶體使用。該緩存記憶體可以被釋放使用 FLUSH PRIVILEGES。

DROP USER

DROP USER user[,user] …

http://dev.mysql.com/doc/refman/5.1/en/drop-user.html

DROP USER ‘username’@HOSTNAME;

CREATE USER ‘username’@HOSTNAME [IDENTIFIED BY ‘password’];

你可能會需要的,如果你使用的删除重新整理權限。

請記住:這并不一定撤銷所有該使用者可能有(如表的權限)的權限,你将不得不這樣做

如果你不這樣做,你可能無法重新建立使用者。

REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘username’@HOSTNAME;

DELETE FROM mysql.user WHERE user=’username';

FLUSH PRIVILEGES;

使用者的帳戶名是等價的:

以“user_name’@’%’。例如,’user_name’ 等同于 ‘user_name’@’%’。

補充閱讀:http://dev.mysql.com/doc/refman/5.1/en/account-names.html

請閱讀進一步 bug:

http://bugs.mysql.com/bug.php?id=28331

http://bugs.mysql.com/bug.php?id=62255

繼續閱讀