Это должно быть очень просто, но я не могу заставить его работать на всю жизнь.
Я просто пытаюсь удаленно подключиться к моему серверу 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', как и у другой записи с хостом '%'.
Я в своем уме и не знаю, как поступить. Любые идеи приветствуются.
mysql
mysql-error-1130
concept47
источник
источник
Ответы:
Возможно, меры предосторожности. Вы можете попробовать добавить новую учетную запись администратора:
Хотя, как отмечали Паскаль и другие, не очень хорошая идея, чтобы пользователь с таким видом доступа был открыт для любого IP. Если вам нужен администратор, используйте root и оставьте его на localhost. Для любого другого действия укажите именно те привилегии, которые вам нужны, и ограничьте доступ пользователя, как предлагает Паскаль ниже.
Редактировать:
Из FAQ по MySQL:
источник
Нужно создать
new MySQL User
и назначить привилегии, какQuery prompt
показано ниже, через phpMyAdmin или командную строку:После завершения всех четырех запросов он должен соединиться с
username / password
источник
@localhost
смысла имело бы смысл, если бы привилегии были как-то отличны, но здесь они одинаковы, и это, вероятно, будет более запутанным, чем что-либо другое (например, изменение паролей на одном, не понимая, что существует другой, и что ваш логин может попасть в него). ).Мое сообщение об ошибке было похожим и гласило: « Хосту XXX не разрешено подключаться к этому серверу MySQL », хотя я использовал root. Вот как убедиться, что root имеет правильные разрешения.
Моя настройка :
Решение
Проверить:
Теперь получите доступ к базе данных MySQL на вашем фактическом сервере (скажем, ваш удаленный адрес 123.123.123.123 на порту 3306 как пользователь 'root', и я хочу изменить разрешения для базы данных 'dataentry'. Не забудьте изменить IP-адрес, порт и имя базы данных в твои настройки)
sudo service mysqld restart
источник
use dataentry
строку (так как большинство людей не будет создавать эту базу данных).mysql
службу в концеFLUSH PRIVILEGES
должно позволить вам не нужно перезагружать.Вам необходимо предоставить доступ пользователю с любого имени хоста.
Вот как вы добавляете новую привилегию из phpmyadmin
Перейти к привилегиям> Добавить нового пользователя
Выберите любой хост для желаемого имени пользователя
источник
Просто выполните следующие шаги:
1a) Подключение к MySQL (через локальный хост)
1b) Если сервер myslq работает в Kubernetes (K8s) и доступ к нему осуществляется через NodePort
2) Создать пользователя
3) Предоставить разрешения
4) Флеш привилегии
источник
Сообщение
*Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server
является ответом от сервера MySQL клиенту MySQL. Обратите внимание, как возвращается IP-адрес, а не имя хоста.Если вы пытаетесь установить соединение
mysql -h<hostname> -u<somebody> -p
и возвращает это сообщение с IP-адресом, сервер MySQL не может выполнить обратный поиск на клиенте. Это очень важно, потому что именно так он сопоставляет клиента MySQL с грантами.Убедитесь, что вы можете сделать
nslookup <mysqlclient>
С сервера MySQL. Если это не сработает, значит, на DNS-сервере нет записи. Кроме того, вы можете поместить запись в файл HOSTS сервера MySQL (<ipaddress> <fullyqualifiedhostname> <hostname>
<- Порядок здесь может иметь значение).Запись в файле хоста моего сервера, разрешающая обратный поиск клиента MySQL, решила эту проблему.
источник
Простой способ:
тогда
сделанный!
источник
WHERE CustomerName LIKE 'a%'
- Находит любые значения, которые начинаются с "a"Если вы изменяете таблицы грантов вручную (используя INSERT, UPDATE и т. Д.), Вы должны выполнить
FLUSH PRIVILEGES
инструкцию, чтобы сообщить серверу перезагрузить таблицы грантов.PS: я бы не советовал разрешать любому хосту подключаться к любому пользователю (особенно не к
root
использованию). Если вы используете mysql для клиент-серверного приложения, предпочтите адрес подсети. Если вы используете mysql с веб-сервером или сервером приложений, используйте определенные IP-адреса.источник
Просто используйте интерфейс, предоставляемый MySql GUI Tool (SQLyog):
Нажмите на менеджер пользователя:
Теперь, если вы хотите предоставить доступ ДЛЯ ЛЮБОГО ДРУГОГО ДИСТАНЦИОННОГО ПК, просто убедитесь, что, как и на рисунке ниже, значение поля Host равно% (это подстановочный знак)
источник
Большинство ответов здесь показывают, что вы создаете пользователей с двумя значениями хоста: один для
localhost
и один для%
.Обратите внимание, что кроме встроенного локального пользователя, такого как root, вам не нужно этого делать. Если вы просто хотите создать нового пользователя, который может войти из любого места, вы можете использовать
и это будет работать просто отлично. (Как уже упоминалось, это ужасная идея - предоставлять административные привилегии пользователю из любого домена.)
источник
Простой способ - войти в phpmyadmin с учетной записью root, перейдите в базу данных mysql и выберите таблицу пользователей, там отредактируйте учетную запись root и в поле хоста добавьте подстановочный знак%. а потом через ssh флеш привилегии
источник
Если это недавняя установка mysql, то прежде чем что-либо менять, попробуйте просто выполнить эту команду и попробуйте снова:
Это одно исправляет проблему для меня в Ubuntu 16.04, mysql 5.7.20. YMMV.
источник
Просто найдите лучший способ сделать это из панели управления хостингом (я использую DirectAdmin здесь)
просто перейдите к целевой БД сервера на панели управления, в моем случае: Управление MySQL -> выберите вашу БД -> вы найдете: «Хосты доступа», просто добавьте сюда свой удаленный хост и он работает сейчас!
Я думаю, что есть аналогичная опция на других C.panels, таких как plesk и т.д ..
Я надеюсь, что это было полезно и для вас.
источник
Ну, ничего из вышеприведенного ответа не помогло мне. После долгих исследований я нашел решение. Хотя я могу опоздать, это может помочь другим в будущем.
Авторизуйтесь на вашем SQL сервере с терминала
Это должно решить проблему с разрешениями.
Удачного кодирования!
источник
Ну, что вы можете сделать, это просто открыть файл mysql.cfg, и вы должны изменить Bind-адрес на этот
bind-address = 127.0.0.1
а затем перезапустите MySQL, и вы сможете подключить этот сервер к этому.
Посмотрите, что вы можете иметь идею от этого.
это настоящий золь
источник
Если вы работаете в Windows; Простое решение - запустить мастер настройки экземпляра сервера MySQL. Он находится в вашей группе MYSQL в меню «Пуск». На втором из последнего экрана щелкните поле с надписью «разрешить root-доступ с удаленных компьютеров».
источник
Если у вас есть сервер WAMP + Windows 10 и вы используете его для разработки, щелкните правой кнопкой мыши на значке Wamp =>
Wamp Settings
=>Check Allow Virtual Hosts other than 127*
источник
Я также столкнулся с той же проблемой. Я решил это за 2 минуты для меня, я просто белый список IP через Cpanel
Предположим, вы пытаетесь подключить базу данных сервера B с сервера A. Перейдите на C-панель сервера B -> Удаленный MySQL -> введите IP-адрес сервера A и все.
источник
Этот ответ может помочь кому-то ...
Все эти ответы не помогли, тогда я понял, что забыл проверить одну важную вещь .. Порт :)
У меня MySQL работает в док-контейнере на другом порту. Я указывал на мою хост-машину через порт 3306, на котором запущен сервер mysql. Мой контейнер выставляет сервер на порт 33060. Так что все это время я смотрел не на тот сервер! DOH!
источник
эта ошибка, потому что нет пароля к корню, и это может быть с вами, когда вы пытаетесь подключиться извне.
источник
CPANEL решение
Зайдите в Cpanel, поищите Remote MySQL. Добавьте IP в поле ввода:
Хост (подстановочный знак% разрешен)
Комментарий, чтобы запомнить, что это за IP. Это было для меня.
источник
Это работает для любого будущего удаленного подключения MySQL!
Перейдите к строке, которая начинается с директивы bind-address. Это должно выглядеть так:
Войдите в свой mysql как корневой терминал
наконец, предоставьте этой машине эксклюзивное разрешение на удаленное подключение к базе данных с помощью следующей команды.
источник
На случай, если кто-то столкнулся с этой проблемой из-за SQLyog, это произошло:
Я подключился к удаленной базе данных (изнутри SQLyog) и работал несколько часов. После этого я на несколько минут вышел из системы, а затем вернулся, чтобы продолжить работу - ОШИБКА 1130 ! Ничто из того, что я пробовал, не сработало; Перезапуск SQLyog не помог. Затем я перезапустил систему - она все еще не работала.
Поэтому я попытался подключиться с терминала - все заработало. Затем повторил это на SQLyog ... и это сработало. Я не могу объяснить это иначе, как «случайные компьютерные причуды», но я думаю, что это может кому-то помочь.
источник
если вы пытаетесь выполнить запрос MySQL без определения строки подключения, вы получите эту ошибку.
Возможно, вы забыли определить строку подключения перед выполнением. ты это проверил? (простите за плохой английский)
источник
Проблема: root @ localhost не может подключиться к новой установке mysql-community-server на openSUSE 42.2-1.150.x86_64. Mysql отказывается от соединений - точка.
Решение:
Файл user.MYD имеет размер 0 (правда?!). Я скопировал все 3 файла из другой рабочей системы.
Я смог войти в систему. Тогда это было просто вопросом повторного применения всех привилегий схемы. Кроме того, если вы отключили IPv6, повторно включите его временно, чтобы учетная запись root @ :: 1 также могла работать.
источник
Это работает для DirectAdmin ;
DirectAdmin
.MySQL Management
.database
.Accesse Host
вкладкой есть поле. Вы должны заполнить это поле черезxxx.xx.xxx.xx
.Add Host
.Законченный. Теперь вы можете получить доступ к этой базе данных с помощью
your_database_username
&your_database_password
.Так просто!
источник
Все ответы здесь не сработали в моем случае, так что я гость, это может помочь другим пользователям в будущем. Это также может быть проблемой в нашем коде, а не только в MySQL.
Если вы используете
VB.NET
Вместо этого кода:
Вам нужно перейти
MysqlConn = New MySqlConnection()
на первую строку. Так было бы такисточник