Проблема с подключением к внешней базе данных MySQL - PullRequest
0 голосов
/ 07 октября 2010

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

mysql -h db.hostname.com -u username -pP@ssword database_name

И это ошибка:

ОШИБКА 1044 (42000): Отказано в доступе для пользователя 'username' @ '%' к базе данных 'database_name'

Я уже попросил администратора внешнего сервера добавить наш IP в свой брандмауэр, но безрезультатно.

Имеетэто как-то связано с привилегиями GRANTing для имени пользователя

Ответы [ 2 ]

1 голос
/ 07 октября 2010

Это не проблема с брандмауэром, поскольку MySQL запрещает соединение.Как вы подозреваете, это проблема с привилегиями, предоставленными пользователю.Вам нужно выполнить это на сервере MySQL (вам может потребоваться немного изменить это, если вы не хотите предоставлять все привилегии для БД):

GRANT ALL ON database_name.* TO 'username'@'%' IDENTIFIED BY 'P@ssword';

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

0 голосов
/ 16 февраля 2011

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

Как вы знаете, администратор mysql на удаленном сайте может указать, к каким IP-адресам разрешено подключаться, используя любую учетную запись пользователя. Помните, что IP-адрес вашего компьютера может быть направлен через все виды маршрутизаторов и брандмауэров на стороне вашей компании, прежде чем вы достигнете внешней базы данных. В результате ваш IP-адрес может отличаться от внешнего источника. В этом случае не поможет, если администратор внешней базы данных добавит ВАШ IP в список «разрешенных», вместо этого ему следует добавить IP-адрес «внешнего мира».

Самый простой способ выяснить, относится ли это к вам, заключается в следующем: посетите www.whatismyip.com и запишите IP-адрес на экране. Это ваш IP, как видно из «внешнего мира». Весьма вероятно, что этот IP-адрес на самом деле является внешним IP-адресом брандмауэра или маршрутизатора в сети вашей компании, а не IP-адресом вашего компьютера вообще.

Далее (если вы работаете в Windows) перейдите в Пуск> Выполнить. Введите cmd и нажмите ввод. Введите ipconfig и нажмите Enter. Теперь вы можете видеть свой локальный IP-адрес.

Если эти два IP-адреса не совпадают, попросите удаленного администратора добавить IP-адрес внешнего мира в список «разрешенных».

также - как только вы перейдете к производству и перенесете свой код на другой сервер, IP-развлечения начнутся снова. С таким же успехом вы можете исправить это прямо сейчас

...