1

我已经面对这个问题有一段时间了。我已经在确实安装的 php 和 mysql 中安装了 xampp。mysql 总是带有默认用户 root (没有密码)。我可以使用 root 登录(无密码),但它不允许我做任何事情。使用任何数据库,选择任何表,更改密码..它不允许我做任何这些操作。如果尝试我收到一条消息

mysql> use mysql
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
mysql>

让我向您展示我在这里所做的步骤..

登录成功。

C:\xampp\mysql\bin>mysql.exe -u root;
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

我运行它来查看用户列表

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

很好,我也跑了这个

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

我不知道为什么它没有显示为 root@localhost,这是正确的方法吗?

然后有趣的是下面的消息显示

mysql> show grants;
+--------------------------------------+
| Grants for @localhost                |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+
1 row in set (0.00 sec)

Grant USAGE ... 对吗?

它只是阻止我从 DB 做任何事情。

4

2 回答 2

0

而不是这个:

C:\xampp\mysql\bin>mysql.exe -u root;

尝试这个:

C:\xampp\mysql\bin>mysql.exe -u root -p

然后回车,最后不要加分号,直接回车;如果您没有密码,只需按 Enter。

现在当你做这个时:

select user();

它会显示:

root@localhost

代替:

//you are logged in as the root user; instead of some "root;" user. 
root;@localhost
于 2013-06-13T20:01:12.957 回答
0

我在尝试通过 Vagrant 访问 MySQL 时遇到了同样的问题。在运行时,SELECT CURRENT_USER();我还得到了 1 行结果@localhost

解决方案是以下列方式启动 MySQL:

mysql -u root -p;- 运行此程序将提示您输入密码,在这种情况下,我键入root,按 Enter 并以实际 root 身份登录,并且能够按预期执行命令。

于 2016-09-27T15:26:03.603 回答