首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows 平台為 Python 安裝 MySQL 驅動:從官方輪包到編譯安裝的完整指南

     編輯:MySQL 綜合教學

現狀:純 Python 驅動已成主流

早期 Windows 安裝 MySQL-python (即 mysqlclient 前身) 需要 Visual C++ 編譯器、MySQL C API 開發包,極易踩坑。現今推薦使用純 Python 實現的驅動,零編譯、安裝即用:

  • PyMySQL (推薦首選): 純 Python、API 與 MySQLdb 高度相容、支援 Python 3.7+
  • mysqlclient (MySQLdb 分支): C 加速、效能略優、需編譯或下載預編譯輪包
  • asyncmy: 異步驅動、支援 asyncio、新專案可考慮

方案一:PyMySQL —— 零依賴、最省心 (強烈推薦)

pip install PyMySQL

用法範例 (兼容 MySQLdb API)

import pymysql
pymysql.install_as_MySQLdb()  # 讓舊代碼 `import MySQLdb` 也能跑

conn = pymysql.connect(
    host='localhost', port=3306,
    user='root', password='password',
    database='test_db', charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

with conn.cursor() as cur:
    cur.execute("SELECT VERSION()")
    print(cur.fetchone())

方案二:mysqlclient —— 追求極致效能的選擇

Windows 預編譯輪包安裝 (官方維護)

# 訪問 https://pypi.org/project/mysqlclient/#files
# 下載對應 Python 版本、系統架構的 .whl 文件
# 例如:mysqlclient-2.2.0-cp311-cp311-win_amd64.whl

pip install mysqlclient-2.2.0-cp311-cp311-win_amd64.whl

歷史資源 (已停止維護,僅供舊版本參考)

  • 64 位非官方編譯:https://www.codegood.com/archives/129 (文中原連結,現多失效)
  • Gohlke 非官方輪包庫 (已關停)

方案三:SQLAlchemy + PyMySQL —— 企業級 ORM 標準棧

pip install SQLAlchemy PyMySQL

from sqlalchemy import create_engine, text
engine = create_engine('mysql+pymysql://user:pass@localhost:3306/db?charset=utf8mb4')

with engine.connect() as conn:
    result = conn.execute(text("SELECT VERSION()"))
    print(result.fetchone())

常見坑位與解決

現象原因解決
ModuleNotFoundError: No module named 'MySQLdb'舊代碼用 import MySQLdb安裝 mysqlclient 或用 pymysql.install_as_MySQLdb()
Authentication plugin 'caching_sha2_password' not supportedMySQL 8.0 新認證插件驅動升級至最新版、或建立用戶指定 mysql_native_password
Can't connect to MySQL server on 'localhost' (10061)服務未啟動/防火牆/端口錯誤檢查服務、netstat -an | findstr 3306、bind-address
中文亂碼連接字符集未指定連接參數加 charset='utf8mb4'、表/庫字符集統一 utf8mb4

虛擬環境最佳實踐

python -m venv venv
venv\Scripts\activate
pip install --upgrade pip
pip install PyMySQL SQLAlchemy  # 或 mysqlclient
pip freeze > requirements.txt

結語

Windows 下 Python 連 MySQL,首選 PyMySQL,純 Python 無編譯依賴、API 兼容、維護活躍。需極致效能時再考慮 mysqlclient 官方輪包。配合 SQLAlchemy ORM、虛擬環境、utf8mb4 字符集,構建穩健的資料庫訪問層。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved