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

文章目录

    系统环境

    • Ubuntu 20.04
    • MySQL 8.0
    • Python 3.8

    问题描述

    在安装了 PyMySQL 之后:

    pipenv install PyMySQL
    

    进行 MySQL 数据库访问时,直接报错:

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

    看上去是 MySQL 8 引入的账号问题。

    解决方法

    pipenv install PyMySQL[rsa]
    

    再次操作数据库就可以了。

    Pipfile 的变化

    pymysql 并没有出现在 packages 区域中,而是独立出了一个 packages.pymysql 区域。

    [[source]]
    url = "https://pypi.python.org/simple"
    verify_ssl = true
    name = "pypi"
    
    [packages]
    requests = "*"
    beautifulsoup4 = "*"
    lxml = "*"
    orator = "*"
    
    [dev-packages]
    
    [requires]
    python_version = "3.8"
    
    [packages.pymysql]
    extras = [ "rsa",]
    

    参考

    https://stackoverflow.com/questions/54477829/cryptography-is-required-for-sha256-password-or-caching-sha2-password

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式