ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Python 環境找不到 MySQL 客戶端動態庫 libmysqlclient.so.18。
/usr/local/mysql/lib/)不在系統動態連結器搜尋路徑(/etc/ld.so.conf.d/、LD_LIBRARY_PATH)中。MySQLdb (C 擴展) 運行時依賴此庫。ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
ldconfig # 刷新動態庫緩存
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
ldconfig
ldconfig -p | grep libmysqlclient.so.18
# 應顯示指向 /usr/lib64/libmysqlclient.so.18
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
# 寫入 ~/.bashrc 或啟動腳本永久生效
MySQLdb (MySQL-python) 已停止維護,不支援 Python 3.7+ 新特性。mysqlclient 是官方分支,持續更新,API 相容:pip uninstall MySQL-python
pip install mysqlclient
安裝 mysqlclient 時會自動偵測 mysql_config 路徑,通常無需手動處理動態庫。
python -c "import MySQLdb; print(MySQLdb.__version__)"
# 或
python -c "import mysqlclient; print('ok')"