ERROR 1396 (HY000)|MySQL报错

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'。

mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'

问题很可能源于手动修改过root'@'localhost'这条记录,导致关联数据未能一起修改。

两种解决方案:

Solution 1

手动将已修改的记录改回localhost,然后,跳过新建操作,如:

update user set host='localhost' where user='root' and host='%';

重新为其他ip地址添加用户:

mysql>use mysql;
mysql>CREATE USER 'root'@'192.168.159.1' IDENTIFIED BY 'MyNewPass4!';
mysql>GRANT ALL ON *.* TO 'root'@'192.168.159.1';

Solution 2

删除localhoat关联的数据。

注:不建议对root用户执行此操作。

删除前确保其它用户能够登录,并能为新用户授权,防止无法登录和授权。

mysql> drop user 'root'@'localhost';