Я не знаю (и не могу найти примеры) строки подключения для перехода к sqlalchemy create_engine(), которая позволяет мне подключиться к базе данных mysql на веб-службе Amazon RDS. Документация проста, но я спотыкаюсь. Штаты Документация:Правильная строка соединения для перехода к sqlalchemy create_engine() для mysql AWS RDS
mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
Допустим, мой пользователь: hellothere
пароль: Комп < «/ "/> {}]: [" licated
хозяин: sandbox.cbaspyqqzfab.us-Запад- 2.rds.amazonaws.com
порт: 3306
имя_бд является: nameofdatabase
, что случилось с этим?
conn_str = 'mysql+mysqldb://<hellothere>:<Comp<'/"/>{}]:["licated>@<sandbox.cbaspyqqzfab.us-west-2.rds.amazonaws.com>[:<3306>]/<nameofdatabase>'
engine = sqlalchemy.create_engine(conn_str, echo=True)
Сообщение об ошибке
Traceback (most recent call last): File "C:/GitHub/blah/data/init.py", line 16, in main() File "C:/GitHub/blah/data/init.py", line 12, in main init_db() File "C:/GitHub/blah/data/init.py", line 8, in init_db DbSessionFactory.global_init(db_file=dbfilepath) File "C:\GitHub\blah\data\dbsession.py", line 25, in global_init engine = sqlalchemy.create_engine(conn_str, echo=True) File "C:\Python\Anaconda3\envs\CE\lib\site-packages\sqlalchemy\engine__init__.py", line 387, in create_engine return strategy.create(*args, **kwargs) File "C:\Python\Anaconda3\envs\CE\lib\site-packages\sqlalchemy\engine\strategies.py", line 80, in create dbapi = dialect_cls.dbapi(**dbapi_args) File "C:\Python\Anaconda3\envs\CE\lib\site-packages\sqlalchemy\dialects\mysql\mysqldb.py", line 110, in dbapi return import('MySQLdb') ModuleNotFoundError: No module named 'MySQLdb'
Он отлично работает, если я указать локальный файл и использовать SQLite, так что я думаю, что остальная часть кода в порядке.
conn_str = 'sqlite:///' + 'dbfile.sqlite'
Я пробовал довольно много различных способов, с и без <>, но я получаю ту же ошибку. Я не знаю, нужно ли мне избегать специальных символов в пароле, или если проблема более фундаментальная, и я неправильно подключаюсь к RDS. Я подключился с помощью пакета RMySQL в R, и он работает, поэтому я не думаю, что моя проблема связана с сетью или брандмауэром. Все примеры, которые я вижу в Интернете, заменяют приведенную выше документацию на строку подключения, потому что (очевидно) они не хотят раскрывать свои учетные данные, поэтому мне трудно найти что-то, чтобы имитировать. Есть идеи?