Python3.6使用mysql.connector出现Segmentation fault (core dumped)问题求助
mysql-connector-python 段错误问题排查与解决方案
排查方向
- 验证依赖版本兼容性:Python 3.6 支持的最高
mysql-connector-python版本为8.0.29,更高版本已停止对Python 3.6的适配,底层C扩展的兼容问题会直接触发段错误。执行pip show mysql-connector-python即可查看当前安装的版本。 - 检查同类型依赖冲突:如果环境中同时安装了
mysqlclient、mysql-connector等其他MySQL相关驱动包,不同包依赖的底层动态库冲突也会触发内存访问异常。执行pip list | grep mysql可查看所有已安装的MySQL相关依赖。 - 排查系统动态库兼容问题:如果系统预装的
libmysqlclient版本与mysql-connector-python依赖的版本不匹配,也会导致调用底层库时触发段错误。
解决方案
- 方案1:安装适配Python 3.6的指定版本
先卸载当前不兼容的版本:pip uninstall -y mysql-connector-python
再安装官方兼容Python 3.6的最高版本:pip install mysql-connector-python==8.0.29
安装完成后执行python -c "import mysql.connector"验证是否恢复正常。 - 方案2:强制使用纯Python模式运行
若降级后仍报错,可通过环境变量禁用C扩展,避免底层兼容问题,导入前添加如下配置:import os os.environ['MYSQL_CEXT'] = '0' import mysql.connector - 方案3:替换为兼容替代驱动
上述方案均无效时,可替换为纯Python实现的MySQL驱动pymysql,Python 3.6支持的最高版本为1.0.2,安装命令:pip install pymysql==1.0.2
该驱动API设计与mysql-connector-python高度一致,仅需修改导入语句即可快速适配。
内容的提问来源于stack exchange,提问作者Bazzz420
相关产品推荐
相关产品推荐

