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

Python 3.12.7中ssl模块无wrap_socket属性问题求助

修复Python 3.12.7 + Ubuntu 24.10下mysql.connector的ssl.wrap_socket报错

问题场景

在Ubuntu 24.10系统上使用Python 3.12.7运行MySQL连接脚本时,触发以下报错:

AttributeError: module 'ssl' has no attribute 'wrap_socket'

原因是Python 3.10+已弃用ssl.wrap_socket()接口,而系统预装的mysql.connector版本过低,未适配新的SSL API。

修复方案

方案一:升级mysql-connector-python到官方最新版(推荐)

  1. 卸载系统预装的旧版本:
sudo apt remove python3-mysql.connector
  1. 使用pip安装官方维护的最新版:
pip3 install --upgrade mysql-connector-python
  1. 连接脚本可简化(新版会自动适配认证插件,无需手动指定auth_plugin,若数据库强制要求mysql_native_password可保留该参数):
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",
    user="root",
    passwd="your_password",
    database="mydatabase"
)

mycursor = mydb.cursor()

方案二:修改系统预装mysql.connector的源码(应急用,不推荐)

若无法升级包,可手动修改源码适配新SSL接口:

  1. 打开network.py文件:
sudo nano /usr/lib/python3/dist-packages/mysql/connector/network.py
  1. 找到switch_to_ssl方法中的ssl.wrap_socket行,替换为ssl.SSLContext().wrap_socket:
    原代码片段:
self.sock = ssl.wrap_socket(

修改后:

self.sock = ssl.SSLContext().wrap_socket(
  1. 保存退出后重新运行脚本即可。注意:系统更新可能会覆盖此修改,优先使用方案一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 02:05:03