Подключение к MySQL БД, размещенной на сервере AWS EC2 - PullRequest
1 голос
/ 27 марта 2020

Я разработал веб-сайт с Flask, структурой python, развернутой с nginx, которая отлично работает. Веб-сайт взаимодействует с базой данных MySQL через py mysql и SQLAlchemy, используя следующий URI:

"SQLALCHEMY_DATABASE_URI": "mysql+pymysql://user:password@localhost/database"

Как веб-сайт, так и база данных размещаются на сервере AWS EC2. Я пытаюсь получить доступ к этой базе данных с моего персонального компьютера, устанавливая соединение с DBeaver. Учебное пособие , за которым я следую, говорит, что для адреса привязки, найденного в файле mysqld.cnf , установлено значение 0.0.0.0:

bind-address = 0.0.0.0

Однако это не работает соединение с сайта с базой данных. Это ошибка, найденная в журнале:

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query') [SQL: ...]

Таким образом, я не могу установить адрес привязки. Сайт снова работает, когда я это комментирую. Как сохранить работоспособность веб-сайта, разрешив удаленный доступ к базе данных?

Хотя я не уверен, как это поможет, я включил соединение с базой данных в правилах группы безопасности AWS:

enter image description here

Любая помощь или ссылки по моей проблеме очень ценятся. Оставайтесь в безопасности!

1 Ответ

0 голосов
/ 28 марта 2020

Конфигурацию mysql можно оставить как есть. Протоколы доступа уже определены в AWS. Чего мне не хватало, так это настройки удаленного пользователя для базы данных с хостом «%» (что означает, что с любым хостом все в порядке). Затем я только что ввел учетные данные соединения с БД в DBeaver, и это сработало!

Я не уверен, насколько безопасно соединение. Оставлять пользователя открытым для любого соединения, вероятно, рискованно. Тем не менее, я не очень читал в этом вопросе и не могу оценить его статус безопасности. Соединение SSL может быть более безопасным, но я не знаю, как его настроить.

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