目录
- 一、问题描述
- 二、场景还原
-
- [1. 创建项目](#1. 创建项目)
- [2. 安装mysql-connector-python](#2. 安装mysql-connector-python)
- [3. 测试类](#3. 测试类)
- 三、原因分析
- 四、解决方案
-
- [1. 查看版本](#1. 查看版本)
- [2. 切换python版本](#2. 切换python版本)
- [3. 切换mysql-connector-python版本](#3. 切换mysql-connector-python版本)
- [4. 测试](#4. 测试)
- 参考文献
一、问题描述
初次使用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()
三、原因分析
-
配置错误
可能是连接数据库配置有误,这个很容易就排除了
-
版本冲突
可能是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
*/