Хосту "xxx.xx.xxx.xxx" не разрешено подключаться к этому серверу MySQL - PullRequest
596 голосов
/ 13 октября 2009

Это должно быть очень просто, но я не могу заставить его работать ради моей жизни.
Я просто пытаюсь удаленно подключиться к моему серверу MySQL.

подключение как

mysql -u root -h localhost -p  

работает нормально, но пытается

mysql -u root -h 'any ip address here' -p

завершается с ошибкой

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server

В таблице mysql.user точно такая же запись для пользователя 'root' с хостом 'localhost', как и у другой записи с хостом '%'.

Я сошел с ума, и понятия не имею, как поступить. Любые идеи приветствуются.

Ответы [ 24 ]

2 голосов
/ 13 октября 2017

Большинство ответов здесь показывают, что вы создаете пользователей с двумя значениями хоста: один для localhost и один для %.

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

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;

и все будет работать нормально. (Как уже упоминалось, предоставление административных привилегий пользователю из любого домена - ужасная идея.)

2 голосов
/ 22 ноября 2017

Если это недавняя установка mysql, то перед изменением чего-либо еще попробуйте просто выполнить эту команду, а затем повторите попытку:

flush privileges;

Это одно исправляет проблему для меня в Ubuntu 16.04, mysql 5.7.20. YMMV.

1 голос
/ 04 февраля 2014

Что вы можете сделать, это просто открыть файл mysql.cfg, и вы должны изменить Bind-адрес на

адрес привязки = 127.0.0.1

, а затем перезапустите mysql, и вы сможете подключить этот сервер к этому.

Смотри, у тебя может быть такая идея.

это настоящий золь

1 голос
/ 19 мая 2018

Просто найдите лучший способ сделать это из панели управления хостингом (я использую DirectAdmin здесь)

просто перейдите к БД целевого сервера в вашей панели управления, в моем случае: Управление MySQL -> выберите свою БД -> вы найдете: «Access Hosts», просто добавьте сюда свой удаленный хост и он работает сейчас! enter image description here

Полагаю, на других панелях C.panels, таких как plesk и т. Д., Есть похожая опция.

Я надеюсь, что это было полезно и вам.

1 голос
/ 22 июня 2016

Если вы работаете в Windows; Простое решение - запустить мастер настройки экземпляра сервера MySQL. Он находится в вашей группе MYSQL в меню «Пуск». На втором из последнего экрана установите флажок «Разрешить root-доступ с удаленных компьютеров».

0 голосов
/ 29 апреля 2019

CPANEL решение

Зайдите в Cpanel, найдите Remote MySQL. Добавьте IP в поле ввода:

Хост (допускается подстановочный знак%)

Комментарий, чтобы запомнить, что это за ip. Это было для меня.

0 голосов
/ 21 марта 2019
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

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

0 голосов
/ 10 декабря 2018

Это работает для DirectAdmin ;

  1. Перейти к вашему DirectAdmin.
  2. Перейти к вашему MySQL Management.
  3. Выберите ваш database.
  4. Под вашей вкладкой Accesse Host есть поле. Заполните это поле на xxx.xx.xxx.xx.
  5. Нажмите Add Host.

Закончено. Теперь вы можете получить доступ к этой БД по вашему your_database_username & your_database_password.
Так просто!

0 голосов
/ 17 мая 2018

Этот ответ может кому-то помочь ...

Все эти ответы не помогли, тогда я понял, что забыл проверить одну важную вещь .. Порт:)

MySQL работает в контейнере Docker, работающем на другом порту. Я указывал на мою хост-машину через порт 3306, на котором запущен сервер mysql. Мой контейнер выставляет сервер на порт 33060. Так что все это время я смотрел не на тот сервер! DOH!

0 голосов
/ 30 апреля 2018

Проблема: root @ localhost не может подключиться к новой установке mysql-community-server на openSUSE 42.2-1.150.x86_64. Mysql отказывается от соединений - период.

Решение:

$ ls -l /var/lib/mysql/mysql/user.*
-rw-rw---- 1 mysql mysql     0 Apr 29 19:44 /var/lib/mysql/mysql/user.MYD
-rw-rw---- 1 mysql mysql  1024 Apr 29 19:44 /var/lib/mysql/mysql/user.MYI
-rw-rw---- 1 mysql mysql 10684 Apr 29 19:44 /var/lib/mysql/mysql/user.frm

Файл user.MYD имеет размер 0 (правда?!). Я скопировал все 3 файла из другой рабочей системы.

$ /usr/sbin/rcmysql stop
$ cd /var/lib/mysql/mysql/
$ scp root@othersytem:/var/lib/mysql/mysql/user.* ./
$ /usr/sbin/rcmysql start
$ cd -
$ mysql -u root -p

Я смог войти в систему. Тогда это было просто вопросом повторного применения всех привилегий схемы. Кроме того, если вы отключили IPv6, повторно включите его временно, чтобы учетная запись root @ :: 1 также могла работать.

...