【沉浸式解决问题】mysql-connector-python连接数据库:RuntimeError: Failed raising error.

目录

一、问题描述

初次使用mysql-connector-python连接mysql时报错

txt 复制代码
Traceback (most recent call last):
  File "D:\Data\WorkSpace\PyCharm\Test\uv-test\tests\mysql_test\mysql_test.py", line 12, in <module>
    conn = mysql.connector.connect(**config)
  File "D:\Data\WorkSpace\PyCharm\Test\uv-test\.venv\Lib\site-packages\mysql\connector\pooling.py", line 322, in connect
    return CMySQLConnection(*args, **kwargs)
  File "D:\Data\WorkSpace\PyCharm\Test\uv-test\.venv\Lib\site-packages\mysql\connector\connection_cext.py", line 142, in __init__
    self.connect(**kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^
  File "D:\Data\WorkSpace\PyCharm\Test\uv-test\.venv\Lib\site-packages\mysql\connector\abstracts.py", line 1604, in connect
    self._open_connection()
    ~~~~~~~~~~~~~~~~~~~~~^^
  File "D:\Data\WorkSpace\PyCharm\Test\uv-test\.venv\Lib\site-packages\mysql\connector\connection_cext.py", line 354, in _open_connection
    self._cmysql.connect(**cnx_kwargs)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
RuntimeError: Failed raising error.

二、场景还原

1. 创建项目

【保姆级喂饭教程】uv教程一文讲透:安装,创建,配置,工具,命令

2. 安装mysql-connector-python

bash 复制代码
uv add mysql-connector-python

3. 测试类

python 复制代码
import mysql.connector

config = {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "root",
    "database": "test"
}

conn = mysql.connector.connect(**config)
cursor = conn.cursor()
cursor.execute("SELECT 1")
print(cursor.fetchall())  # 输出查询结果
cursor.close()
conn.close()

三、原因分析

  1. 配置错误

    可能是连接数据库配置有误,这个很容易就排除了

  2. 版本冲突

    可能是mysql-connector-python、MySQL、python之间版本冲突

查看MySQL官网的版本对应关系:
Connector/Python 版本发布

我的MySQL版本低,但是python版本高,应该就是这个原因了


四、解决方案

1. 查看版本

查看python、MySQL、mysql-connector-python版本

bash 复制代码
python -V
mysql -V
uv pip show mysql-connector-python

根据版本关系图,我的MySQL5.7最高配python3.11,而现在时3.13,没有能用的mysql-connector-python版本,MySQL不容易随便换,换python版本比较容易

2. 切换python版本

安装python 3.11并切换虚拟环境版本,GitHub加速也下载不下来,手动安装了,具体教程可以看
【保姆级喂饭教程】uv教程一文讲透:安装,创建,配置,工具,命令

bash 复制代码
uv python install 3.11 --mirror file:///D:\Program\Work\uv\python-mirror
uv python pin 3.11

补充:

在另一个原生就是python3.13的项目,切换3.11失败

txt 复制代码
error: The requested Python version `3.11` is incompatible with the project `requires-python` value of `>=3.13`.

需要到pyproject.toml里面把3.13改为3.11

3. 切换mysql-connector-python版本

先卸载,再安装指定版本

bash 复制代码
uv remove mysql-connector-python
uv add mysql-connector-python==8.0.33

由于更换了python版本,第一次运行uv会删除虚拟环境并重新创建

版本号要写详细,否则找不到,具体版本可以去之前设置的清华镜像源上去找
https://pypi.tuna.tsinghua.edu.cn/simple/mysql-connector-python/

4. 测试

再次执行,没有问题

参考文献

python连接mysql 报错RuntimeError: Failed raising error
pycharm连接mysql失败 但IDLE成功


喜欢的点个关注吧><!祝你永无bug!

txt 复制代码
/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/
相关推荐
高级程序源2 小时前
django校园寻物通失物招领平台32261-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·django·flask·课程设计
WeiXin_DZbishe2 小时前
基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217
vue.js·spring boot·python·django·php·课程设计
KIDULT°2 小时前
MySQL系列 (1):数据库原理
运维·数据库·mysql·云计算
kimnoic3 小时前
Python数据库学习心得:SQLite、MySQL、PostgreSQL优缺点
开发语言·python
我不是程序员三三3 小时前
透明加密软件偶发解密异常排错实录:文件时能打开时乱码
数据库·域智盾
snhna3 小时前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
天行健,君子而铎3 小时前
数据分类分级的范式转换:从规则匹配到场景化高准确率一键部署
网络·数据库·安全
牛战士coding4 小时前
MySQL 读写分离完整链路:主从复制、多数据源与 @DS 路由
数据库·mysql
必须得开心呀4 小时前
python编写带界面的软件,需要安装哪些插件
开发语言·python
Wx-bishekaifayuan4 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游