Доступ MySQL запрещен, хост базы данных ssh - PullRequest
0 голосов
/ 02 марта 2011

Я пытаюсь получить доступ к mysql на удаленном сервере и создать там базу данных.Я использую замазку для подключения.проблема в том, что я получаю сообщение об ошибке «отказано в доступе», что бы я ни делал:

:mysql -p
:mysql -u <username> -p
.
.
.

я все еще получаю предупреждение.

ОШИБКА 1045 (28000): доступ запрещен для пользователя'username' @ 'localhost' (используя пароль: НЕТ)

ОШИБКА 1045 (28000): доступ запрещен для пользователя 'username' @ 'localhost' (используя пароль: YES)

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

1 Ответ

1 голос
/ 02 марта 2011

У вас проблемы с удаленным доступом к MySql. С здесь

  • Шаг # 1: Войти через ssh

Сначала войдите через ssh на удаленный сервер базы данных MySQL

  • Шаг № 2: Включить работу в сети

После подключения вам нужно отредактировать файл конфигурации mysql my.cfg с помощью текстового редактора, например vi.

В Debian Linux файл находится по адресу /etc/mysql/my.cnf

# vi /etc/my.cnf
  • Шаг № 3: После открытия файла найдите строку, которая читается как [mysqld]

Убедитесь, что пропущена строка с комментариями (или удалите строку), и добавьте следующую строку

bind-address=YOUR-SERVER-IP

Например, если IP-адрес вашего сервера MySQL 172.20.5.2, то весь блок должен выглядеть следующим образом:

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 172.20.5.2

# skip-networking
....
..
....

Где - bind-address: IP-адрес для привязки. - пропуск сети: вообще не слушайте соединения TCP / IP. Все взаимодействие с mysqld должно осуществляться через сокеты Unix. Этот параметр настоятельно рекомендуется для систем, где разрешены только локальные запросы. Поскольку вам необходимо разрешить удаленное подключение, эту строку следует удалить из файла или перевести в состояние комментария.

  • Шаг № 4 Сохраните и закройте файл.

Перезапустите службу MySQL, чтобы изменения вступили в силу

# /etc/init.d/mysql restart
  • Шаг № 5 Предоставить доступ к удаленному IP-адресу

    # mysql -u root –p mysql

Предоставить доступ к новой базе данных

Если вы хотите добавить новую базу данных с именем foo для панели пользователя и удаленного IP-адреса 162.54.10.20, вам необходимо ввести следующие команды в mysql> prompt:

mysql> CREATE DATABASE foo;

mysql> GRANT ALL ON foo.* TO bar@'162.54.10.20' IDENTIFIED BY 'PASSWORD';

Предоставить доступ к существующей базе данных

Предположим, что вы всегда устанавливаете соединение с удаленного IP-адреса 162.54.10.20 для базы данных с именем webdb для пользователя webadmin, тогда вам необходимо предоставить доступ к этому IP-адресу. В приглашении mysql> введите следующую команду для существующей базы данных:

mysql> update db set Host='162.54.10.20' where Db='webdb';

mysql> update user set Host='162.54.10.20' where user='webadmin';
  • Шаг № 6: Выход из MySQL

Введите команду выхода для выхода из системы mysql

mysql> exit
  • Шаг № 7: Проверьте это

Команда типа удаленной системы

$ mysql -u webadmin –h 172.20.5.2 –p

Вы также можете использовать telnet для подключения к порту 3306 в целях тестирования.

$ telnet 172.20.5.2 3306
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...