You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包exe后mysql_native_password认证插件不支持问题求助

解决方案

1. 强制PyInstaller打包缺失的依赖模块

PyInstaller可能遗漏了mysql-connector-python中认证相关的核心模块,可通过以下方式补充:

  • 使用--hidden-import参数强制导入认证模块:
    python3 -m PyInstaller --hidden-import mysql.connector.auth .\home.py
    
  • 若仍无效,手动添加mysql库的完整路径到打包资源中(替换为你的实际site-packages下mysql文件夹路径):
    # Windows系统
    python3 -m PyInstaller --add-data "C:\PythonXX\Lib\site-packages\mysql;mysql" .\home.py
    # macOS/Linux系统
    python3 -m PyInstaller --add-data "/usr/local/lib/pythonX.X/site-packages/mysql:mysql" .\home.py
    

2. 显式指定认证插件参数

在数据库连接代码中直接声明使用mysql_native_password,避免打包后程序自动选择错误的认证方式:

mysql.connector.connect(
    host="localhost",
    user="user",
    passwd="password",
    database="db_name",
    auth_plugin='mysql_native_password'
)

3. 确保打包环境与运行环境一致

  • 检查打包用的Python版本和IDE中运行的版本是否完全一致,执行python3 --version对比
  • 清理并重装依赖,避免残留冲突库:
    pip uninstall mysql-connector -y
    pip install mysql-connector-python --force-reinstall
    

4. 排查Docker数据库的网络访问问题

  • 确认Docker容器的3306端口已正确映射到宿主机,执行docker ps查看是否有0.0.0.0:3306->3306/tcp的映射记录
  • Windows系统下,尝试将连接的host改为host.docker.internal,因为Windows中Docker的localhost默认指向容器内部而非宿主机

内容的提问来源于stack exchange,提问作者user8088197

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:50:28