我在 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/