Я дал команду DROP USER 'root'@'localhost'; GRANT ALL PRIVILEGES ON . TO 'root'@'%';
в PhpMyAdmin сразу после выполнения меня вытеснили PhpMyAdmin, у меня возникла ошибка #1130 - Host 'localhost' is not allowed to connect to this MySQL server
, как решить мою проблему?
Откройте терминал.
$ 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:
>use mysql
>GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'pass';
>FLUSH PRIVILEGES;
Приятно провести время.
Объедините ответ dlo с ответом Даррена Чемберлена. Причина этого в том, что особое значение «localhost» в MySQL заключается в том, что оно означает использование локального сокета unix (mysql.sock) вместо сокета TCP. Вот почему указание 127.0.0.1 в качестве хоста поможет вам исправить ситуацию; это означает для клиента MySQL использовать сокет TCP.