为什么不能在mysql中创建新用户?

时间:2014-10-26 14:18:52

标签: mysql

mysql> select user,host from mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| root             | 127.0.0.1 |
| root             | ::1       |
| debian-sys-maint | localhost |
| developer        | localhost |
| jack             | localhost |
| root             | localhost |
| root             | rebuild   |
+------------------+-----------+
7 rows in set (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wpdatabase         |
+--------------------+
4 rows in set (0.00 sec)

mysql> CREATE USER wpuser@localhost;
ERROR 1396 (HY000): Operation CREATE USER failed for 'wpuser'@'localhost'

为什么无法在mysql中创建新用户?用户wpuser不在表user中。 我已经使用过数据库了,所以有人可以帮我解决如何创建新用户的问题吗?

不,这不是密码问题(123456是mysql数据库的关键)。

mysql> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '123456';
ERROR 1396 (HY000): Operation CREATE USER failed for 'wpuser'@'localhost'

enter image description here

太奇怪了,请继续。

enter image description here

为什么CREATE USER wpuser@localhost;可以&#t; CREATE USER wpusers@localhost;可以吗?

3 个答案:

答案 0 :(得分:1)

您要创建的用户必须拥有MySQL密码:

CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';

然后给他权限:

GRANT ALL PRIVILEGES ON * . * TO 'wpuser'@'localhost';

不要忘记重新加载所有权限:

FLUSH PRIVILEGES;

希望这会对你有所帮助。

答案 1 :(得分:1)

我相信我遇到了同样的问题。我不小心创建了'myuser',使用下面的命令将其删除,然后我无法创建用户,尽管它没有显示在mysql.user

我尝试使用这些命令删除但无效。

delete user from mysql.user where user='myuser'
delete user from mysql.user where user='myuser' and host='localhost'
delete user from mysql.user where user='myuser' and host='%'

当我使用此命令删除用户时,它对我有用。

DROP USER 'myuser'@'localhost';

在尝试这些命令之间我FLUSH PRIVILEGES好像我在腹泻。所以,如果它仍然无效,请按照Begueradj的建议行事。

答案 2 :(得分:0)

对我来说,我在mysql工作台中尝试重新添加数据库中的用户时遇到此错误,但是随后我尝试执行此查询并发现该用户实际上是添加的:

select user, host from mysql.user

因此,我建议是否有人在mysql工作台中遇到该错误,以便在可能已经创建用户的更复杂的解决方案之前尝试此查询作为第一个措施。