Подключитесь к mysql на Amazon EC2 с удаленного сервера - PullRequest
58 голосов
/ 19 марта 2012

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

mysql -uUSERNAME -hEC2_IP -pPASSWORD

Эта ошибка генерируется

ОШИБКА 2003 (HY000): не удается подключиться к серверу MySQL по «IP» (110)

Я изменил my.cnf с помощью

skip networking
bind-address            = 0.0.0.0

Все еще не может подключиться к базе данных

Ответы [ 15 ]

1 голос
/ 06 мая 2013

Решение этого состоит из трех шагов:

  1. В файле MySQL my.ini / my.cnf измените bind-адрес, чтобы принимать подключения от всех хостов (0.0.0.0).

  2. Внутри aws console - ec2 - определенной группы безопасности откройте ваш порт mysql (по умолчанию 3306), чтобы принимать соединения от всех хостов (0.0.0.0).

  3. В брандмауэре Windows добавьте порт mysql (по умолчанию 3306) к исключениям.

И это начнет принимать удаленные подключения.

0 голосов
/ 03 июня 2019

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

0 голосов
/ 01 июня 2016

При создании такого пользователя, как «myuser» @ «localhost», пользователь ограничивается подключением только с localhost.Создайте пользователя только для удаленного доступа и используйте IP-адрес удаленного клиента, с которого вы будете подключаться к серверу MySQL.Если вы можете нести риск разрешения подключений со всех удаленных хостов (обычно при использовании динамического IP-адреса), вы можете использовать 'myuser' @ '%'.Я сделал это, а также удалил bind_address из /etc/mysql/mysql.cnf (Ubuntu), и теперь он подключается без проблем.

mysql> select host,user from mysql.user;
+-----------+-----------+
| host      | user      |
+-----------+-----------+
| %         | myuser    |
| localhost | mysql.sys |
| localhost | root      |
+-----------+-----------+
3 rows in set (0.00 sec)
0 голосов
/ 16 июня 2015

Я прошел все предыдущие ответы (и ответы на похожие вопросы) безуспешно, так что вот что в итоге сработало для меня. Ключевым шагом было явное предоставление привилегий на сервере mysql локальному пользователю (для сервера), но с добавленным к нему локальным IP-адресом (myuser@*.*.*.*). Полное пошаговое решение выглядит следующим образом:

  1. Закомментируйте строку bind_address в /etc/mysql/my.cnf на сервере (т. Е. Экземпляр EC2). Я полагаю bind_address=0.0.0.0 также будет работать, но это не нужно, так как другие упоминали.

  2. Добавьте правило (как уже упоминали другие) для MYSQL в группу безопасности экземпляра EC2 с портом 3306 и либо My IP, либо Anywhere в качестве источника. Оба прекрасно работают после выполнения всех шагов.

  3. Создать нового пользователя myuser с ограниченными привилегиями для одного конкретного база данных mydb (в основном, следуя инструкциям в этом учебнике Amazon ):

    $EC2prompt> mysql -u root -p
    [...omitted output...]
    mysql>  CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_strong_password';
    mysql>  GRANT ALL PRIVILEGES ON 'mydb'.* TO 'myuser'@'localhost';`
    
  4. Вот ключевой шаг, без которого мой локальный адрес был отклонен при попытке удаленного подключения (ERROR 1130 (HY000): Host '*.*.*.23' is not allowed to connect to this MySQL server):

    mysql> GRANT ALL PRIVILEGES ON 'mydb'.* TO 'myuser'@'*.*.*.23';
    mysql> FLUSH PRIVILEGES;`
    

    (замените '*.*.*.23' на ваш локальный IP-адрес)

  5. Для удобства я вышел из оболочки mysql и перезапустил сервер msyql:

    $EC2prompt> sudo service mysql restart

  6. После этих шагов я смог счастливо подключиться со своего компьютера с помощью:

    $localprompt> mysql -h myinstancename.amazonaws.com -P 3306 -u myuser -p

    (замените myinstancename.amazonaws.com на публичный адрес вашего экземпляра EC2)

0 голосов
/ 19 июля 2012

Я знаю, что это старый пост, но ...

У меня возникла эта проблема, и я установил, что моя проблема на самом деле не экземпляр EC2. Кажется, что это может быть ошибка в программном драйвере клиента MySQL. Я еще не провел тщательного исследования, но я дошел до того, что установил MySQL Workbench на экземпляр EC2, и ИТ-служба также нестабильна - периодически не удается подключиться (ошибка «соединение отменено»). Эта ссылка предлагает возможную ошибку ниже стека, а не EC2.

Конечно, я не проводил исчерпывающих исследований, и мой пост может быть фактически неуместным, но его стоит отметить и / или изучить в любом случае, ИМХО.

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