目錄
- 一、問題描述
- 二、場景還原
- 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
*/