Почему я не могу получить удаленный доступ к MySQL на Amazon RDS? - PullRequest
0 голосов
/ 08 июня 2018

Итак, я уже создал новую группу безопасности rds_access для своего экземпляра RDS с параметром Inbound->> Source равным 0.0.0.0/0, и обновил экземпляр так, чтобы в разделе «Группы безопасности» на панели управления RDS у меня было: rds_access (sg-xxx) (активный)

В разделе «Редактирование» MySQL Workbench моего подключения, на вкладке «Удаленный менеджер» я установил значение «Native Windows remote»переключатель «управление» активен, а параметр «Имя хоста» - 0.0.0.0.

Экземпляр и база данных успешно соединяются.

В моем веб-приложении, работающем на pythonany, где я все еще получаю этоошибка:

OperationalError: (2003, «Не удается подключиться к серверу MySQL на« bachelor-diploma-db.cx0stetemb8k.eu-central-1.rds.amazonaws.com »([Errno 111] Отказ в соединении))

Перед загрузкой моего приложения на pythonanywhere я протестировал его на localhost, и все работало нормально. Также я перезагрузил экземпляр RDS и базу данных MySQL.

Просьбыe, скажите мне, что я делаю неправильно и как решить эту проблему?

ОБНОВЛЕНИЕ: Для подключения к серверу MySQL я использую flask-mysql.Вот фрагмент кода:

 from flaskext.mysql import MySQL  
 api = Api(app)

 mysql = MySQL()
 app.config['MYSQL_DATABASE_USER'] = 'user'
 app.config['MYSQL_DATABASE_PASSWORD'] = 'password'
 app.config['MYSQL_DATABASE_DB'] = 'bachelor_diploma_db'
 app.config['MYSQL_DATABASE_HOST'] = 'bachelor-diploma-db.cx0stetemb8k.eu-central-1.rds.amazonaws.com'

 mysql.init_app(app)

, а затем в методах, которые я использую:

conn = mysql.connect()

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Возможно, потому что вы используете бесплатную учетную запись PythonAnywhere, а бесплатные учетные записи могут подключаться только через http (s) к определенному белому списку сайтов.

0 голосов
/ 08 июня 2018

Вам необходимо подключиться к фактической общедоступной конечной точке для вашего экземпляра RDS.0.0.0.0/0 - это просто заполнитель, означающий любой IP-адрес.Из консоли RDS найдите подробную информацию.В разделе «Соединение» вы должны увидеть конечную точку, которая выглядит примерно так:

mysql–instance1.123456789012.us-east-1.rds.amazonaws.com

Из командной строки строка подключения будет выглядеть примерно так:

mysql -h mysql–instance1.123456789012.us-east-1.rds.amazonaws.com
    -u ec2-user -pPASSWORD yourdb

Если вышеприведенное не соответствуетРешите проблему, затем вы также можете убедиться, что порт 3306 (используемый MySQL) не находится за брандмауэром.

Дополнительную информацию см. в документации AWS .

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