ERROR 1130 (HY000): хосту '' не разрешено подключаться к этому серверу MySQL

Почему я не могу подключиться к mysql?

mysql -u root -ptest101 -h xxx.xxx.xxx.xxx
ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

В my.cnf у меня есть

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 0.0.0.0

Я также запускал ниже...

'UPDATE mysql.user SET Password = PASSWORD('test101') WHERE User = 'root';
FLUSH PRIVILEGES;

Я могу получить доступ на главной машине с помощью mysql -u root -ptest101, но не используя mysql -u root -ptest101 -h xxx.xxx.xxx.xxx

Вау... почему это происходит? Я nubuntj 12.04

mysql> SELECT host FROM mysql.user WHERE User = 'root';
+---------------------------------------------+
| host                                        |
+---------------------------------------------+
| %                                           |
| 127.0.0.1                                   |
| ::1                                         | |
| localhost                                   |
+---------------------------------------------+
5 rows in set (0.00 sec)

Ответ 1

Ваша учетная запись root, и это выражение относится к любой учетной записи, может быть добавлено только с доступом к локальному хосту (что рекомендуется).

Вы можете проверить это с помощью:

SELECT host FROM mysql.user WHERE User = 'root';

Если вы видите только результаты с localhost и 127.0.0.1, вы не можете подключиться к внешнему источнику. Если вы видите другие IP-адреса, но не тот, с которым вы подключаетесь, - это также указание.

Вам нужно будет добавить IP-адрес каждой системы, к которой вы хотите предоставить доступ, а затем предоставить привилегии:

CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';

Если вы видите %, то тогда возникает другая проблема, так как это "любой удаленный источник". Если вы хотите, чтобы все/все системы подключались через root, используйте шаблон % для предоставления доступа:

CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

Наконец, перезагрузите разрешения, и вы сможете иметь удаленный доступ:

FLUSH PRIVILEGES;

Ответ 2

Следующие два шага работали отлично для меня:

  • Прокомментируйте адрес привязки из файла /etc/mysql/my.cnf:

    #bind-address = 127.0.0.1

  • Запустите следующий запрос в phpMyAdmin:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;

Ответ 3

$mysql -u root --host=127.0.0.1 -p

mysql>use mysql

mysql>GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY '[email protected]';

mysql>FLUSH PRIVILEGES;

mysql> SELECT host FROM mysql.user WHERE User = 'root';

Ответ 4

mysql > СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'name' @'%' ИДЕНТИФИЦИРОВАН BY 'passWord'; Ответить затронутые строки (0,00 сек)

mysql > ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ. Назвать'@'%'; Запросить OK, 0 строк (0,00 сек)

mysql > ПРИВИЛЕГИИ FLUSH; Query OK, 0 строк (0.00 sec)

MySQL >

  • Удостоверьтесь, что у вас есть свое имя и% в правильном направлении.
  • Убедитесь, что вы добавили порт 3306 на любой брандмауэр, который вы можете запустить (хотя это даст другое сообщение об ошибке)

надеюсь, что это поможет кому-то...

Ответ 5

Для тех, кто имеет доступ к cpanel, есть более простой способ обойти его.

  • войти в cpanel = > "Удаленный MySQL" в разделе DATABASES:

  • Добавьте IP-адрес/имя хоста, к которому вы обращаетесь

  • сделано!!!

Ответ 6

Перейдите в PhpMyAdmin, нажмите на нужную базу данных, перейдите на вкладку Privilages и создайте нового пользователя "remote" и дайте ему все привилегии и в поле хоста установите опцию "Любой хост" (%).

Ответ 7

есть простой способ исправить эту ошибку

просто замените файлы в папке: C:\xampp\mysql\data\mysql

с файлами на: C:\xampp\mysql\backup\mysql