Django迁移SQLite到MySQL遇http.dll插件加载错误求助
Django迁移MySQL出现2059错误(http.dll找不到)的解决方法
这个错误的核心是MySQL无法加载http认证插件,以下是针对性的解决步骤:
修正数据库连接的认证插件配置
绝大多数Django项目不需要使用http认证插件,这不是MySQL的默认插件。修改settings.py中的数据库配置,将认证插件替换为MySQL默认的类型:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '你的数据库名', 'USER': '你的数据库用户', 'PASSWORD': '你的密码', 'HOST': 'localhost', 'PORT': '3306', 'OPTIONS': { # MySQL 5.7及以下用mysql_native_password,8.0+用caching_sha2_password 'auth_plugin': 'mysql_native_password', }, } }若确实需要http插件,先在MySQL服务器安装
如果你有特殊场景必须使用http认证插件,登录MySQL服务器执行以下命令安装:INSTALL PLUGIN http SONAME 'http.dll';注意:该插件仅用于特定HTTP认证场景,普通Web项目无需启用。
验证MySQL与依赖版本兼容性
确认你的MySQL服务器版本:- MySQL 8.0及以上默认使用
caching_sha2_password - MySQL 5.7及以下默认使用
mysql_native_password
你的mysqlclient 2.1.1、Python 3.10.2、Django 4.0.5版本组合是兼容的,只需匹配对应版本的认证插件即可。
- MySQL 8.0及以上默认使用
排查系统PATH环境变量
如果http.dll已存在但无法被找到,将MySQL安装目录下的lib文件夹(例如C:\Program Files\MySQL\MySQL Server 8.0\lib)添加到系统PATH环境变量,然后重启终端和Python运行环境。
内容的提问来源于stack exchange,提问作者Sujeet
相关产品推荐
相关产品推荐

