Подключитесь к MySQL на AWS с локальной машины - PullRequest
26 голосов
/ 01 декабря 2011

Я пытаюсь настроить среду разработки на своем локальном компьютере, которая обращается к БД MySQL на AWS, но получаю сообщение «Не удается подключиться».

mysql_connect('xxx.xxx.xxx.xxx:3306', 'USERNAME', 'PASSWORD');

Я также прокомментировалbind-адрес в файле my.cnf и предоставленные разрешения для подключающегося IP-адреса.

Кто-нибудь когда-нибудь успешно получал эту работу?

Ответы [ 6 ]

37 голосов
/ 01 августа 2013

Мой опыт работы в августе-2013 был следующим для экземпляра RDS, созданного с помощью Elastic Beanstalk.

0) Предполагается, что экземпляр RDS уже создан1) Войдите в консоль управления: https://console.aws.amazon.com/console/home
2) Выберите Services-> VPC3) Выберите группы безопасности (слева)4) Выберите группу, в описании которой указано «Группа безопасности для БД RDS ...»
5) На панели «Выбранная группа безопасности» внизу страницы выберите «Входящие».6) Выберите MySQL как правило.7) Введите IP-адрес моей локальной машины, например, 145.23.32.15/328) Нажмите «Добавить правило» и «Применить изменения правила».

После этого я мог подключиться к базе данных, используя mysql с моего локального компьютера.

a) В консоли управления выберите Services-> RDSб) Нажмите на экземпляры БД (у меня есть только один) и выберите «Перейти на страницу сведений» для требуемого экземпляраc) Получить хост и порт с конечной точкиd) Из терминальной сессии сделайте что-то вроде: mysql --host blah.blah.blah.us-west-2.rds.amazonaws.com --port 3306 -u my-user-name -p

29 голосов
/ 01 декабря 2011

Если вы используете MySql в AWS через экземпляр RDS, вы должны добавить IP-адрес, с которого вы хотите соединиться, в «Группы безопасности БД».Для этого перейдите на консоль управления AWS и выберите RDS.1. Выберите «Группы безопасности БД» на левой панели2. Выберите «по умолчанию»3. Выберите «CIDR / IP» в поле выбора и введите публичный IP-адрес вашей рабочей станции.Пример:23.234.192.123/32 ( не забудьте / 32 для одного ip )4. Нажмите «Добавить»5. Подождите несколько минут, пока он вступит в силу, а затем подключите свой клиент MySql.Это относится только к экземплярам RDS. Если вы используете MySql, установленный на экземпляре EC2, то инструкции аналогичны доступу к MySql с любого удаленного компьютера.

13 голосов
/ 01 декабря 2011

Я полагаю, что это брандмауэр от Amazon, попробуйте использовать туннель SSH:

http://blogs.oracle.com/divyen/entry/connecting_mysql_server_on_amazon

Примечание. Не открывайте MySQL для общедоступного Интернета, даже при использовании IP-фильтрации.Туннели SSH намного более безопасны.Лучшая часть этого: туннель может быть доступен с localhost: 3306 на вашей машине, нет необходимости изменять конфигурацию:)

2 голосов
/ 09 декабря 2011

Я использую MySQL Workbench http://www.mysql.com/products/workbench/ с RDS, и он прекрасно работает.Очень легко создать и сохранить новый экземпляр службы базы данных.Нажмите «Новый экземпляр сервера» в разделе «Администрирование сервера» и следуйте инструкциям.Вам нужно будет ввести информацию, предоставленную на веб-странице AWS RDS для этого экземпляра (например, это конечная точка).

ПРИМЕЧАНИЕ. Для фактического подключения вы ДОЛЖНЫ добавить свой IP-адрес в «БД».Группы безопасности. "Ссылка находится в левом столбце, который называется «Навигация».Я использую опцию «CIDR / IP» (другая группа безопасности EC2).Обязательно добавьте «/ ##» после IP, например, «/ 32», которое они используют в примере (вы увидите его на странице).Через несколько секунд IP-адрес должен быть авторизован.

После этого вернитесь в MySQL Workbench и завершите процесс создания нового экземпляра сервера.

Чтобы использовать соединение, ваш код может выглядетькак-то так (это выдержки из моего кода Java):

String url = "jdbc:mysql://yourdatabasename.foo.us-east-1.rds.amazonaws.com:3306/";
String userName = "your_user_name";
String password = "your_password";
String dbName = "your_db_name";
String driver = "com.mysql.jdbc.Driver";
Connection connection = DriverManager.getConnection(url + dbName, userName, password);
1 голос
/ 06 марта 2014

Я нахожусь на компьютере с Windows 7, и мне пришлось внести следующие 3 изменения, чтобы иметь возможность подключиться к AWS RDB.

  1. Обновление VPC Security Group в консоли AWS (аналогично тому, что было у mikemay выше)

    • С https://console.aws.amazon.com, нажмите на Сервисы (вверху слева) и выберите VPC.
    • Далее выберите Группы безопасности
    • Нажмите на группу безопасности, которая имеет описание «Группа безопасности для БД RDS ...»
    • На вкладке «Входящие» выберите «MYSQL» в раскрывающемся списке «Создать новое правило».
    • Добавьте свой IP-адрес в формате CIDR и нажмите «Добавить правило».
    • Нажмите «Применить изменения правил».
  2. my.cnf обновление в локальной конфигурации MySQL

    • Измените "bind-address = 127.0.0.1" на "bind-address = 0.0.0.0"
    • Комментарий "skip-network"
  3. Выключить брандмауэр Windows

    • Перейдите в Панель управления / Система и безопасность / Брандмауэр Windows и выключите Брандмауэр Windows.

После этих изменений я могу подключиться через оба

  • MySQL WorkBench с использованием базы данных-> подключиться к базе данных
  • Командная строка с

    mysql.exe -h <AWS DB Endpoint> -U <UserName> -P <Port Number, likely 3306> -p
    
0 голосов
/ 24 ноября 2018

Когда мы создаем RDS, необходимо настроить брандмауэр на прием соединений mySQL из локального или другого экземпляра, так как пакет отбрасывается на уровне брандмауэра, для решения этой проблемы вам необходимо:

  • Войдите в консоль AWS. Перейдите на страницу RDS

enter image description here

Запишите группу безопасности вашего сервера MySQL (в моем случае awseb-e)

  • нажмите группы безопасности
  • нажмите вашу группу в центральном меню awseb
  • нажмите вкладку входящих

Выберите MySQL из списка, добавьтесведения о вашем клиентском сервере и сохраните правило

enter image description here ПРИМЕЧАНИЕ. Как только вы выберете мой IP-адрес, AWS выберет ваш IP-адрес, если вам потребуется другой IP-адрес

https://www.whatismyip.com/my-ip-information/

и добавьте свой IP4 IP

enter image description here

...