#1130 - 不允许主机“localhost”连接到此 MySQL 服务器

#1130 - 不允许主机“localhost”连接到此 MySQL 服务器

我在 PhpMyAdmin 中发出了命令DROP USER 'root'@'localhost'; GRANT ALL PRIVILEGES ON . TO 'root'@'%';,执行之后立即被强制退出 PhpMyAdmin,出现错误#1130 - Host 'localhost' is not allowed to connect to this MySQL server,如何解决我的问题?

答案1

打开一个终端。

$ mysql -u root --host=127.0.0.1 -p<yourpassword>
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 521
Server version: 5.1.38yes-debug yes

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

mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY "<yourpassword>";
Query OK, 0 rows affected (0.22 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost;
Query OK, 0 rows affected (0.08 sec)

这应该可以解决你的问题;)。

答案2

mysql 对 % 和 localhost 的处理方式不同。您'root'@'localhost'也需要授予所有权限。

答案3

在您的服务器上从命令行运行 mysql:

mysql -u root -p -h localhost -P 3306

然后在 mysql shell 中运行此命令:

>use mysql
>GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'pass';
>FLUSH PRIVILEGES;

祝你玩得愉快。

答案4

将 dlo 的回答与 Darren Chamberlain 的回答结合起来。原因是 'localhost' 在 MySQL 中具有特殊含义,它表示使用本地 unix 套接字 (mysql.sock) 而不是 TCP 套接字。这就是为什么指定 127.0.0.1 作为主机会让您进入,以便您可以修复这种情况;它表示 MySQL 客户端使用 TCP 套接字。

相关内容