ERROR 1045(28000):用户'用户名'@'%'的访问被拒绝(使用密码:是)

时间:2013-10-07 08:26:14

标签: mysql database permissions privileges grant

我在CentOS 6.4服务器上安装了MySQL。我登录了我的root并更改了密码。

后来我认为我应该创建一个新用户并将该用户用作我的默认用户,所以我使用以下命令创建了一个新用户名golden

CREATE USER 'golden'@'%' IDENTIFIED BY 'password';

然后我向用户golden申请了权限:

GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';

FLUSH PRIVILEGES;

现在这位用户:golden能够做到一切。所以我最后Deleted the root user。现在我不得不向另一个新用户授予特权。

当我通过golden登录时,我创建了另一个用户(此时我已经删除了root用户并成功创建了命令,而新用户我可以在列表中看到它还)

CREATE USER 'fashion'@'%' IDENTIFIED BY 'password';

然后下面的命令给我错误:

GRANT ALL PRIVILEGES ON *.* TO 'fashion'@'%';

错误:错误1045(28000):用户'黄金'@'%'拒绝访问(使用密码:是)

我也尝试了以下命令,结果如下:

mysql> SELECT USER(),CURRENT_USER();
+------------------+----------------+
| USER()           | CURRENT_USER() |
+------------------+----------------+
| golden@localhost | golden@%       |
+------------------+----------------+

如果我无法授予此用户访问权限,那么我该如何登录并使用该数据库?请帮助。

编辑1:以下命令给出了以下结果

mysql> select user, host FROM mysql.user;
+------------+-------+
| user       | host  |
+------------+-------+
| golden     | %     |
| fashion    | %     |
+------------+-------+

3 个答案:

答案 0 :(得分:6)

首先,我无法想象您删除root用户的原因。但回到问题 - 您应该指定WITH GRANT OPTION,如下所示:

(但是你应该在重新安装mysql之后选择,就好像你没有root访问权限并且用户也没有足够的权限一样,那么最好是重新启动安装过程并使用户以下面定义的方式授予他们权限

mysql> create user 'golden'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on *.* to golden@localhost with grant option;
Query OK, 0 rows affected (0.00 sec)

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

然后

mysql> select current_user();
+------------------+
| current_user()   |
+------------------+
| golden@localhost |
+------------------+
1 row in set (0.00 sec)

mysql> create database testing;
Query OK, 1 row affected (0.03 sec)

mysql> grant all privileges on testing.* to test;
Query OK, 0 rows affected (0.02 sec)

mysql> drop database testing;
Query OK, 0 rows affected (0.12 sec)

- 但在删除root用户之前请再三考虑。

答案 1 :(得分:2)

你试过这个吗?

update mysql.user set grant_priv='Y' where user='golden';
flush privileges;

然后退出并以用户黄金身份重新连接到数据库。

答案 2 :(得分:0)

解决此问题的最简单方法是 -

1.go来控制面板并使隐藏的文件和文件夹可见(如果之前没有这样做) 2.现在转到你的驱动器并在其中打开一个隐藏文件夹“程序数据”。 3.搜索mysql文件夹并删除它。 4.uninstall mysql 5.1。 5.使用向导重新安装它。 它会问你的新密码.. :)享受