Подключиться к экземпляру базы данных AWS RDS MySQL с помощью Flask-SQLAlchemy
В моем приложении Flask я хочу использовать расширение Flask-SQLAlchemy для подключения к экземпляру базы данных, созданному мной на AWS RDS.
Когда я пытаюсь подключиться, приложение истекает, и я получаю следующую ошибку:
sqlalchemy.exc.OperationalError: (OperationalError) (2003, "Can not подключиться к серверу MySQL на 'Xxxxxxxxxxxxxxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com' (60" )
Мой код выглядит следующим образом:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
application = Flask(__name__)
application.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://{master username}:{db password}@{endpoint}/{db instance name}'
db = SQLAlchemy(application)
@application.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
application.run()
Документация Flask-SQLAlchemy говорит, что формат SQLALCHEMY_DATABASE_URI для соединений с базой данных mysql должен выглядеть следующим образом:
mysql://username:[email protected]/db
Кроме того, я могу проверить консоль AWS RDS для информации о моем экземпляре базы данных. Консоль выглядит как this.
Сейчас я предполагаю, что
"username" в SQLAlchemy относится к "Мастер-имени" в консоли AWS RDS,
"сервер" в SQLAlchemy относится к "конечной точке" в консоли AWS RDS,
и "db" относится к "имени экземпляра базы данных"
Что я делаю неправильно?
Если кто-то может описать SQLALCHEMY_DATABASE_URI для меня с терминами AWS RDS, это полностью решит проблему.
Ответы
Ответ 1
Перейдите на консоль AWS RDS и выберите свой экземпляр → Группы безопасности БД → Щелкните по умолчанию
и добавьте новый CIDR в соответствии с рекомендуемым диапазоном IP.
Это в основном конфигурация брандмауэра, которая определяет, кто может подключиться к экземпляру базы данных.
Вы можете установить его как 0.0.0.0/0, чтобы брандмауэр не мешал вам получать доступ к нему из любого хоста/сети.
Ответ 2
Это правильный путь: панель мониторинга EC2 → Найти сеть и безопасность с левой боковой панели → Группы безопасности.
![Security groups]()
Если у вас создана группа безопасности, вы можете перейти на номер 2.
- Создание новой группы безопасности:
Там вы можете назвать свою группу безопасности и описание.
VPC, вероятно, будет создан автоматически для вас.
![Create security group window]()
После создания выберите его из списка.
- Настройте входящие и/или исходящие подключения:
Здесь вы можете настроить правила входящих подключений.
![Inbound window]()
При редактировании → добавить правило у вас есть стандартные настройки для простой настройки, например, HTTP для порта 80.
![Edit inbound connection rules window]()
Я надеюсь, что это помогает всем отныне.
- По соображениям безопасности попробуйте разрешить только доверенные IP-адреса и/или группы безопасности.