首先,分两种情况:
(1)PySide2/PyQt5版本≤5.12
(2)PySide2/PyQt5版本>5.12
(一)对应于第一种情况(PySide2/PyQt5版本≤5.12)
测试代码如下:
1 from PySide2.QtSql import QSqlDatabase 2 from PySide2.QtCore import QCoreApplication 3 4 app = QCoreApplication() 5 db = QSqlDatabase.addDatabase('QMYSQL') 6 db.setHostName('localhost') 7 db.setUserName('test_user') 8 db.setPassword('123456') 9 db.setDatabaseName('world') 10 db.open() 11 print(db)
在命令行运行该python脚本,错误信息如下:
出现此问题,只需要在本机mysql的安装位置找到libmysql.dll文件,例如本机路径为:“G:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.dll",并将此文件拷贝至上面脚本的同目录下,在此运行,信息如下:
可以看到,已经成功连接到mysql数据库。
(二)对应于第二种情况(PySide2/PyQt5版本>5.12)
在命令行运行上面的测试代码,错误信息如下:
注意,可用的驱动列表中没有QMYSQL,说明缺少驱动,打开PySide2目录\PySide2\plugins\sqldrivers,发现只有如下3个:
这是因为,从PySide2 5.12之后,不再提供mysql的驱动,那么我们把5.12的驱动放到里面行不行呢,我们把5.12的”qsqlmysql.dll“放到5.15的sqldrivers文件夹下,同样的把libmysql.dll拷贝至脚本同一目录,运行脚本,提示如下:
可以看到,版本不同,不兼容。
所以,我们需要自己编译5.15版本的mysql驱动,或者拿来主义也行,将合适的驱动文件放至\PySide2\plugins\sqldrivers下后,运行脚本
可以看到,能够成功连接了。