【沉浸式解决问题】mysql-connector-python连接数据库:RuntimeError: Failed raising error.
目录
- 一、问题描述
- 二、场景还原
- 1. 创建项目
- 2. 安装mysql-connector-python
- 3. 测试类
- 三、原因分析
- 四、解决方案
- 1. 查看版本
- 2. 切换python版本
- 3. 切换mysql-connector-python版本
- 4. 测试
- 参考文献
一、问题描述
初次使用mysql-connector-python连接mysql时报错
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 connectreturn 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 connectself._open_connection()~~~~~~~~~~~~~~~~~~~~~^^File "D:\Data\WorkSpace\PyCharm\Test\uv-test\.venv\Lib\site-packages\mysql\connector\connection_cext.py", line 354, in _open_connectionself._cmysql.connect(**cnx_kwargs)~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
RuntimeError: Failed raising error.
二、场景还原
1. 创建项目
【保姆级喂饭教程】uv教程一文讲透:安装,创建,配置,工具,命令
2. 安装mysql-connector-python
uv add mysql-connector-python
3. 测试类
import mysql.connectorconfig = {"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版本
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教程一文讲透:安装,创建,配置,工具,命令
uv python install 3.11 --mirror file:///D:\Program\Work\uv\python-mirror
uv python pin 3.11
补充:
在另一个原生就是python3.13的项目,切换3.11失败
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版本
先卸载,再安装指定版本
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!
/*_ooOoo_o8888888o88" . "88(| -_- |)O\ = /O____/`---'\____.' \\| |// `./ \\||| : |||// \/ _||||| -:- |||||- \| | \\\ - /// | || \_| ''\---/'' | |\ .-\__ `-` ___/-. /___`. .' /--.--\ `. . __."" '< `.___\_<|>_/___.' >'"".| | : `- \`.;`\ _ /`;.`/ - ` : | |\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^佛祖保佑 永无BUG
*/