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

suzf.net  纯手工打造

在对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;
CREATE USER ‘username’@HOSTNAME [IDENTIFIED BY ‘password’];

用户的帐户名是等价的:
以“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

时间: 2024-10-25 15:56:53

Mysql_Faq: ERROR 1396 (HY000): Operation CREATE USER failed for ‘username’@’hostname’的相关文章

mysql重建某个用户账号(ERROR 1396 (HY000): Operation CREATE USER failed)

说明:在MariaDB中删除了用户molewan后,业务又有需求重新建立一个名为molewan的用户 1.查看数据库,发现已经没有molewan用户了 MariaDB [mysql]> select user,host from mysql.user; +----------+------------+ | user     | host       | +----------+------------+ | molewan1 | 10.10.10.% | | admin    | localh

mysql ERROR 1396(HY000)

mysql> create user [email protected]'localhost' identified by '[email protected]'; ERROR 1396 (HY000): Operation CREATE USER failed for 'jumpserver'@'localhost' 创建用户时,出现报错,有很多人都说刷新下权限就行: flush privileges 经过测试,不能成功解决问题,后来想到可能其他表中仍然有用户信息,查看 select * fr

Mysql ERROR 1396 (HY000) 错误的解决办法

建立用户的时候报告这个错误: ERROR 1396 (HY000): Operation CREATE USER failed for 'abc'@'localhost' 原因是mysql中已经有了这个用户,从mysql.user中直接删除delete,然后刷新权限FLUSH PRIVILEGES,再建用户就不会有这个问题了. 如果是drop user 的话,mysql内部会自动刷新一下,那么再建也不会有这问题了. 举例说明1--delete删除: mysql> create user 'abc

maridb Error 'Operation DROP USER failed for

数据库版本:mariadb   10.0.12 主库删除多余的用户名,因从库没有此信息造成主从故障! 报错信息如下:Error 'Operation DROP USER failed for 'username'@'192.16.%' 多源复制的主从报错跳过: 根据mysql操作方式sql_slave_skip_counter = 1 ,执行不报错,但是sql_slave_skip_counter = 1 不会生效 多源主从跳错的操作如下: SET @@default_master_connec

CREATE DATABASE failed

由于环境需要, 故修改SQL Server 2012的默认的数据库的数据文件和日志文件的位置. 如下: 创建数据库, 遭遇报错. 错误信息: A file activation error occurred. The physical file name 'E:testaaa.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation. CREATE DATABASE failed.

ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_830_0.MYI' (Errcode: 13)

mysql操作时,出现报错. 执行describe 命令时, 临时文件目录没有创建或者无写入权限:于是: cd /var/lib/mysql/ #进入mysql数据目录 mkdir tmp #创建需要的临时目录 chown mysql.mysql /var/lib/mysql/tmp #给临时目录分配mysql权限用户及群组 ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_830_0.MYI' (Errcode: 13)

ERROR 1005 (HY000): Can't create table'matrix.system_log' (errno: 150)

CREATE TABLE `user` (`id` bigint(32) NOT NULL AUTO_INCREMENT ,`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`erp` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' ,`email` varchar(32) CHARACTER SET

ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_909_0.MYI' (Errcode: 13)

mysql> desc tablename; ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_909_0.MYI' (Errcode: 13) 两种解决办法:方法一:1.chmod 777 /tmp[[email protected] /]# chmod 777 /tmpchmod: 更改"/tmp" 的权限: 只读文件系统 --遇到这种情况,tmp权限无法更改. 2./etc/init.d/mysqld start

Mysql错误问题:ERROR 1005 (HY000): Can't create table 'crm_1.tbl_client' (errno: 150)

MySQL外键创建条件: 1.两个表必须是InnoDB数据引擎2.外键表的外键字段必须是主键3.字段类型必须一致 创建表时创建外键: create table tbl_client(userName varchar(255) not null, address varchar(255), createDate timestamp not null default now(), createUserName varchar(255), foreign key(createUserName) ref