sqlalchemy缺少“caching\u sha2\u password”身份验证模块

vxbzzdmp  于 2021-06-23  发布在  Mysql
关注(0)|答案(3)|浏览(490)

我试着按照炼金术快速入门指南(http://flask-sqlalchemy.pocoo.org/2.3/quickstart/). 当我执行任何数据库操作时,例如 db.create_all() ,我得到错误 sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: The specified module could not be found.\r\n") 我知道这是因为mysql8中的默认标识方法发生了变化。我打开mysqlshell运行这些-

CREATE USER 'myapp'@'localhost' IDENTIFIES WITH mysql_native_password BY 'password';

GRANT ALL PRIVILEGES ON *.* 'myapp'@'localhost';

看起来还不错。但是,即使在更新配置详细信息以将此新用户用于

app = Flask(__name__,static_url_path='')
app.config['SQLALCHEMY_DATABASE_URI']='mysql:////myapp:password@localhost/mydatabase'
db = SQLAlchemy(app)

同样的错误仍然存在。有什么想法吗?

khbbv19g

khbbv19g1#

试试这个:

app.config['SQLALCHEMY_DATABASE_URI']='mysql:////myapp:password@localhost/mydatabase?auth_plugin=mysql_native_password'

http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.engine.url.url.params.query

rta7y2nd

rta7y2nd2#

这不是“解决方案”,但对于倒霉的谷歌用户来说,这就是我所做的-我卸载了python3.7并恢复到python3.6,以便使用mysql的官方python连接器。我安装了pymysql,并将配置中的uri更改为mysql+pymysql://等。这似乎给我留下了一个运行正常的应用程序。

g6ll5ycj

g6ll5ycj3#

我通过使用 pymysql url中的方言: mysql+pymysql://root:root@localhost:3306/database

相关问题