我发出了DROP USER 'root'@'localhost'; GRANT ALL PRIVILEGES ON . TO 'root'@'%'; DROP USER 'root'@'localhost'; GRANT ALL PRIVILEGES ON . TO 'root'@'%'; 在PhpMyAdmin,执行后立即,我被迫出PhpMyAdmin,我得到了错误#1130 - Host 'localhost' is not allowed to connect to this MySQL server ,如何解决我的问题?
打开一个terminal。
$ 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)
这应该解决你的问题;)。
mysql以不同的方式处理%和localhost。 您还需要将所有权限授予'root'@'localhost' 。
在你的服务器上从命令行运行mysql:
mysql -u root -p -h localhost -P 3306
然后在mysql shell中运行这个命令:
>use mysql >GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'pass'; >FLUSH PRIVILEGES;
祝你有美好的时光
把德洛的答案和达伦·张伯伦的答案结合起来。 这样做的原因是“localhost”在MySQL中的特殊含义是它表示使用本地unix套接字(mysql.sock)和TCP套接字。 这就是为什么指定127.0.0.1作为主机会让你进入,以便你可以解决的情况; 它表示MySQL客户端使用TCP套接字。