Я пытаюсь настроить базу данных mysql с помощью pymysql и Flask-sqlalchemy в приложении фляги.
db = SQLAlchemy()
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:password@localhost:3306/ftm'
db.init_app(app)
Однако, когда я запускаю свое приложение, я получаю:
OperationalError: (pymysql.err.OperationalError) (1045, u"Access denied for user 'root'@'localhost' (using password: NO)")
Я попытался сбросить пароль и убедился, что он работает: из командной строки я могу ввести mysql, написав:
mysql -u root -p
и затем введя свой пароль в командной строке.Кто-нибудь знает, почему mysql, кажется, думает, что я пытаюсь подключиться без пароля, хотя у меня есть (действительный) пароль в URI?
Обратите внимание, что это проблема, отличная от mysql_exceptions.OperationalError: (1045, «Доступ запрещен для пользователя 'root' @ 'localhost' (используя пароль: YES)") и другие потенциальные дубликаты, потому что эти сообщения об ошибках по крайней мере регистрируют, что попытка подключения имеет парольприсоединен.
Редактировать: В произвольном порядке я: попробовал другого пользователя , проверил состояние строки подключения непосредственно перед тем, как db.init_app создал другой экземпляр MySQL и попытался подключиться к нему, удалил pymysql из строки подключения и попытался отследить его с помощью pdb (бесполезно, потому что единственный вызов метода, которыйЯ признал, что мой был init_app ()).Я также исследовал Интернет и не обнаружил никаких упоминаний о том, что кто-то получал это сообщение об ошибке при попытке подключиться к базе данных с помощью пароля. Единственная оставшаяся возможность, о которой я могу думать, это то, что во времячто-то передается из app.config в mysql (когда я вызываю db.init_app), что-то меняет мою строку для удаления пароля. Есть идеи?Если ни у кого ничего нет, мне просто нужно использовать Postgre или что-то еще ...