python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > 缺少cryptography库

Python连接MySQL报错:缺少cryptography库的解决办法

作者:XYiFfang

这篇文章主要介绍了Python连接MySQL报错:缺少cryptography库的两种解决办法,分别是安装cryptography库和修改MySQL用户认证方式,两种方法各有适用场景,需要的朋友可以参考下

发现问题

在使用 Python 连接 MySQL 数据库时,有时可能会遇到这样的错误:

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

这篇文章将带你快速理解该错误的原因,并提供两种实用的解决方法。

错误原因

MySQL 8.0 及以上版本默认使用 caching_sha2_passwordsha256_password 认证插件进行用户身份验证,这两种方式比早期的 mysql_native_password 更安全。

而 PyMySQL 默认不包含对这两种认证方式的支持,需要依赖 cryptography 这个第三方加密库来完成密码的加密处理。如果没有安装该库,就会出现上述错误。

解决方法

方法一:安装 cryptography 库(推荐)

如果你有权限安装 Python 包,这是最直接的解决方法。

pip install cryptography

安装完成后重新运行你的 Python 脚本即可。

适用场景

方法二:修改MySQL用户认证方式

如果你有数据库管理员权限,可以将用户认证方式改为传统的 mysql_native_password

执行以下SQL语句(请替换用户名和密码):

ALTER USER '用户名' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRRIVILEGES;

适用场景

方法对比表

方法优点缺点适用场景
安装 cryptography安全、官方推荐、一劳永逸需安装额外依赖开发、测试、生产
修改认证方式无需安装新包、快速解决安全性降低、需数据库权限临时测试、内网环境

解决方法速览

总结

根据你的实际环境和权限,选择最适合的方案即可顺利连接 MySQL 数据库。

注意:修改认证方式会降低安全性,请谨慎在生产环境中使用。建议在测试或内部系统中使用。

到此这篇关于Python连接MySQL报错:缺少cryptography库的解决办法的文章就介绍到这了,更多相关缺少cryptography库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文