参考文章:
https://blog.csdn.net/qq_38198744/article/details/80261695
前文说过如何在Ubuntu环境下 为PyQt5 安装MySql驱动, 这里面主要说的是如何在Windows环境下安装MySql驱动。
# -*- coding: utf-8 -*- ''' 【简介】 PyQt5中 处理database 例子 ''' import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtSql import QSqlDatabase class ExecDatabaseDemo(QWidget): def __init__(self, parent=None): super(ExecDatabaseDemo , self).__init__(parent) #self.db = QSqlDatabase.addDatabase('QSQLITE') #self.db.setDatabaseName('./db/database.db') # 打开数据库 #self.db.open() self.con2 = QSqlDatabase.addDatabase('QMYSQL') self.con2.setHostName("67.209.xxx.xxx") self.con2.setDatabaseName("mysql") self.con2.setUserName("root") self.con2.setPassword("xxxxxxxx") a=self.con2.open() print(a) def closeEvent(self, event): # 关闭数据库 self.con2.close() if __name__ == '__main__': app = QApplication(sys.argv) demo = ExecDatabaseDemo() demo.show() sys.exit(app.exec_())
以上是具体代码,运行后总是打印 False, 这说明数据库是没有连接上的。
在windows环境下我的编程环境中该代码运行并不会提示任何的错误,这一点和Linux环境下还是有所区别的。
经过在网上查找资料发现只要找到 文件 libmySQL.dll ,这个动态库就可以搞定了, 一般安装MySql 的 可以在电脑上找到,默认的一般是C:Program FilesMySQLMySQL Server 5.6lib 拷贝里面的libmysql.dll文件
python的版本如果是32位的,那就必须要找32位的libmysql文件
python的版本如果是64位的,那就必须要找64位的libmysql文件
最后一步:
把拷贝的libmysql.dll文件放到PyQt5/Qt的bin目录下,例如我的是:
C:UsersdevilAppDataLocalProgramsPythonPython35Libsite-packagesPyQt5Qtin
再次运行数据库连接代码,发现可以正确连接了。