mysql - 错误 1045 (28000) : Access denied for user 'username' @'%' (using password: YES)

标签 mysql database permissions privileges sql-grant

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

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

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

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

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

FLUSH PRIVILEGES;

现在这个用户:golden 可以做任何事情了。所以我最终删除了根用户。现在,我无法为我的另一个新用户授予权限。

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

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

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

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

错误:错误 1045 (28000):用户 'golden'@'%' 的访问被拒绝(使用密码:YES)

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

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

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

编辑 1:以下命令给我以下结果

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

最佳答案

首先,我无法想象您删除 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 用户之前要三思。

关于mysql - 错误 1045 (28000) : Access denied for user 'username' @'%' (using password: YES),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19220085/

相关文章:

mysql - 使用 MySQL 和多个表选择所有未打开电子邮件的订阅者

mysql - 按其他列的年、月、日、小时和分钟填写mysql中的日期字段

linux - 即使在 linux 中设置 ACL 后,文件访问权限也被拒绝

permissions - rsync:如何保持选定的目标目录权限?

php - MYSQL中输入和输出之间的持续时间

java - 找不到适合 jdbc :mysql://google/mysql? cloudSqlInstance 的驱动程序

关于提供的绑定(bind)数量的 Python sqlite3 错误

java - 在android中让用户选择授予权限

mysql - 使用 mysql 查询进行字符串破坏/剥离

mysql - 为多对多关系插入多个值时如何避免重复 - mysql