3

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

后来我想我应该创建一个新用户并将该用户用作我的默认用户,所以我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):用户 'golden'@'%' 的访问被拒绝(使用密码:是)

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

mysql> 选择用户(),当前用户();
+-----------------+----------------+
| 用户() | 当前用户() |
+-----------------+----------------+
| 金@本地主机 | 金@% |
+-----------------+----------------+

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

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

mysql> 选择用户,主机 FROM mysql.user;
+------------+--------+
| 用户 | 主持人 |
+------------+--------+
| 金色 | % |
| 时尚 | % |
+------------+--------+
4

3 回答 3

6

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

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

mysql> 创建由“密码”标识的用户“黄金”@“本地主机”;
查询正常,0 行受影响(0.00 秒)

mysql> 使用授权选项将 *.* 上的所有权限授予 Golden@localhost;
查询正常,0 行受影响(0.00 秒)

mysql> 刷新权限;
查询正常,0 行受影响(0.00 秒)

接着

mysql> 选择 current_user();
+------------------+
| 当前用户() |
+------------------+
| 金@本地主机 |
+------------------+
一组中的 1 行(0.00 秒)

mysql> 创建数据库测试;
查询正常,1 行受影响(0.03 秒)

mysql> 授予测试的所有权限。* 进行测试;
查询正常,0 行受影响(0.02 秒)

mysql> 删除数据库测试;
查询正常,0 行受影响(0.12 秒)

root- 但再一次,在删除用户之前三思而后行。

于 2013-10-07T08:34:56.100 回答
2

你试过这个吗?

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

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

于 2013-10-07T10:26:49.017 回答
0

解决这个问题最简单的方法是——

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

于 2014-02-19T05:44:18.310 回答