1. 程式人生 > 資料庫 >PyQt5連線MySQL及QMYSQL driver not loaded錯誤解決

PyQt5連線MySQL及QMYSQL driver not loaded錯誤解決

一、連線語句

from PyQt5.QtSql import QSqlDatabase

db=QSqlDatabase.addDatabase('QMYSQL')
db.setHostName('localhost')
db.setDatabaseName('dbwork')
db.setUserName('users')
db.setPassword('ZDSYS')
db.setPort(3306)
db.open()

二、錯誤解決

1、提示1:QMYSQL driver not loaded

a、問題分析
python的PyQt5中需要對應版本位數(32/64)的libmysql.dll(MySQL中)。

即:python 32對MySQL 32,python 64對MySQL 64。

b、解決方案
例:
將檔案
C:\Program Files\mysql-5.7.26-win32\lib\libmysql.dll
放入資料夾
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages\PyQt5\Qt\bin

如安裝的MySQL版本位數與python不一致無對應libmysql.dll檔案,請下載:
32位:https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-win32.msi

64位:https://cdn.mysql.com/archives/mysql-connector-c/mysql-connector-c-6.1.11-winx64.msi

對應的libmysql.dll目錄。
32位:C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.dll
64位:C:\Program Files(×84)\MySQL\MySQL Connector C 6.1\lib\libmysql.dll
注:只能安裝一個。

2、提示2:available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7


問題分析
注意該提示中有無QMYSQL,如果有,按提示1解決,如果沒有則是因為PyQt5缺少元件qsqlmysql.dll。

解決方案
解除安裝現有PyQt5安裝固定版本。

pip uninstall PyQt5
pip install PyQt5==5.12.1 #python終端中
pip install --user PyQt5==5.12.1 #anaconda終端中

3、PyQt5檔案位置

python3.7:
C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers\qsqlmysql.dll
anaconda:
C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages\PyQt5\Qt\plugins\sqldrivers

到此這篇關於PyQt5連線MySQL及QMYSQL driver not loaded錯誤解決的文章就介紹到這了,更多相關PyQt5連線MySQL內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!