Дополнительно
Хосту 'xxx.xx.xxx.xxx' не разрешено подключаться к этому серверу MySQL
Это должно быть очень просто, но я не могу заставить его работать.
Я просто пытаюсь удаленно подключиться к моему серверу 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', как и другая с хостом '%'.
Я в растерянности и понятия не имею, как действовать дальше. Любые идеи приветствуются.
622
20
Возможно, это мера предосторожности. Вы можете попробовать добавить новую учетную запись администратора:
Хотя, как отметил Паскаль и другие, это не очень хорошая идея - иметь пользователя с таким доступом, открытым для любого IP. Если вам нужен административный пользователь, используйте root и оставьте его на localhost. Для любых других действий укажите именно те привилегии, которые вам нужны, и ограничьте доступ пользователя, как предлагает Паскаль ниже.
Редактировать:
Из FAQ по MySQL:
Нужно создать нового пользователя MySQL и назначать привилегии, а ниже в строке запроса через phpmyadmin или в командной строке:
После этого со всех четырех запросов, она должна соединиться с
Имя пользователя / пароль
Мое сообщение об ошибке, был похож и сказал, 'хост-XXX не разрешено подключаться к этому серверу MySQL' хотя я был с помощью корня. Здесь's, как убедиться, что корень имеет правильные разрешения.
Мои настройки:
Решение
в mysql -u в корень -п Введите пароль: <введите пароль> для MySQL>грант все по . в корень@'123.123.123.123' определены 'положить-свой-пароль'; в MySQL>очистить привилегии; для MySQL>выход
Вы должны предоставить доступ пользователю с любого узла.
Это, как вы добавить новые привилегии от phpmyadmin
Гото привилегии и gt; Добавить нового пользователя
Выберите любой хост для нужного пользователя
Просто выполните следующие действия:
Сообщение
*Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
является ответом сервера MySQL клиенту MySQL. Обратите внимание, что он возвращает IP-адрес, а не имя хоста.Если вы пытаетесь подключиться с помощью команды
mysql -h -u -p
, а он возвращает это сообщение с IP-адресом, значит сервер MySQL не может выполнить обратный поиск на клиенте. Это очень важно, потому что именно так происходит сопоставление клиента MySQL с грандами.Убедитесь, что вы можете выполнить
nslookup
FROM MySQL server. Если это не сработает, значит, в DNS-сервере нет записи. В качестве альтернативы, вы можете внести запись в файл HOSTS сервера MySQL (` `Если вы изменяете таблицы грантов вручную (используя INSERT, UPDATE и т.д.), вам следует выполнить оператор оператор
FLUSH PRIVILEGES
, чтобы сообщить серверу о перезагрузке таблиц грантов.PS: Я бы не рекомендовал разрешать любой хост для подключения любому пользователю (особенно не использовать
root
). Если вы используете mysql для клиент-серверного приложения, предпочитайте адрес подсети. Если вы используете mysql с веб-сервером или сервером приложений, используйте определенные IP-адреса.Простой способ:
тогда
молодец!
Большинство ответов здесь показать вам создание пользователей с двух принимающих значения: одно для локальным
localhost
, и%
.Обратите внимание, что кроме встроенного пользователя localhost как корень, вы Дон'т должны сделать это. Если вы просто хотите сделать новый пользователь, который может войти в любом месте, вы можете использовать
и он будет работать нормально. (Как отметили другие, это'ы ужасная идея, чтобы предоставить права администратора для пользователя из любого домена.)
Просто использовать интерфейс, предоставляемый MySQL'инструмент ы (сам):
Нажмите на диспетчер пользователей:
Теперь, если вы хотите предоставить доступ к любой другой удаленный компьютер, просто убедитесь, что, как в нижней картинке, принимающего значение поля % (это шаблон)
простой способ это войти в phpmyadmin с помощью учетной записи root , есть Гото базы данных MySQL и выберите пользователя стол , там отредактировать root-доступа, а в поле Добавить % Дикие карты . а потом через SSH очистить привилегии
Просто найти лучший способ, чтобы сделать это из панели управления хостингом (я'м с помощью DirectAdmin)
просто перейдите к целевому серверу БД в панели управления, в моем случае: Управления и MySQL ГТ; выберите свой ДБ -> вы найдете: "у хозяев открыть и", Просто добавьте свой удаленный хост вот и работает сейчас!
Я думаю, что есть подобный вариант на других панелей, как плеск и т. д..
Я'м надеюсь, это было полезно для вас тоже.
Если это недавняя установка базы данных MySQL, тогда прежде чем изменять что-то еще, попробуйте просто выполнить эту команду, а затем попробуйте снова:
Уже одно это устраняет проблему для меня на Ubuntu 16.04, в MySQL 5.7.20. YMMV.
Ну что вы можете сделать, это просто откройте для MySQL.файл cfg и вам нужно изменить привязку-адреса к этому
привязки-адрес = 127.0.0.1
а затем перезапустите MySQL и вы сможете подключить этот сервер к этому.
Посмотреть это вы можете есть форма идеи, что.
это реальная соль
Если вам случится быть запущен на Windows, простое решение для запуска экземпляра мастера настройки сервера MySQL. Это в вашей группе MySQL в меню "Пуск". На второй из последних экрана нажмите на поле с надписью "и разрешить root доступ с удаленных компьютеров-то".
Решение управления cPanel
Зайдите в cPanel, искать удаленное подключение к MySQL. Добавить IP в поле ввода:
Хозяин (% подстановочные допускается)
Комментарий к помните, что IP-адреса,. Это было для меня.
На всякий случай, что кто-то сталкивается с этой проблемой испытывает его изнутри сам, это произошло:
Я уже подключен к удаленной базе данных (в сам) и работал в течение нескольких часов. После этого я оставил систему на несколько минут, затем вернулся, чтобы продолжить мои работы ошибки 1130 ! Нельзя объять необъятное; перезагрузки сам не'т исправить это. Затем я перезагрузил систему - все равно это't работа.
Так я пробовал подключение с терминала - это сработало. Затем повторить это сам ... и это сработало. Я могу'т объяснить это 'случайных компьютерных причудливости', но я думаю, что это может помочь кому-то.
Работая на DirectAdmin;
расстояние хост, есть поле. Вы должны заполнить это поле по ХХХ.ХХ.ХХХ.ХХ
.Добавить
.Закончил. Теперь вы можете получить доступ к этой БД по вашему
your_database_username
&your_database_password
. Так Просто!Этот ответ может помочь кому-то...
Все эти ответы не помогут, то я понял, что забыл проверить одну важную вещь.. порт :)
У меня есть MySQL работает в контейнере докер, работающий на другом порту. Я показывал на свой хост на порт 3306, которая у меня есть сервер MySQL работает. Мой контейнер предоставляет сервер на порту 33060. Так что все это время я смотрел на неправильный сервер! дох!
это ошибка, потому что нет пароля к корню , и это, возможно, произошло с вами, когда вы пытаетесь подключиться извне .