PyQt5连接MySQL数据库Driver not loaded问题解决

Windows下解决办法:

Ubuntu下解决办法:

MacOS下解决办法:


Windows下解决办法:

1. 在以下路径中找到MySQL的动态库:libmysql.dll  (具体路径由你电脑上MySQL的安装位置决定)

2. 然后将该文件复制到PyQt5包中的Qt/bin路径下就可以了:

注意如果你的Python版本为32位,那你就需要32位的libmysql.dll动态库,可以去MySQL :: Download MySQL Connector/C (Archived Versions)官网上下载对应的zip文件,解压后复制过来。

Ubuntu下解决办法:

首先进入PyQt5的包中找到libqsqlmysql.so文件,并在当前目录下的命令行中执行ldd libqsqlmysql.so

 在白色处,笔者原先显示为libmysqlclient.so.18 => not found
如果你也是相同问题,则只需下载该deb文件,并在文件所在目录下执行以下命令进行安装即可:

文件下载地址(在这里感谢该文件提供者):https://download.csdn.net/download/honcun/10679136 

MacOS下解决办法:

注:此处笔者是通过brew install mysql的方法来安装MySQL的。

1. 进入PyQt5安装包,找到libqsqlmysql.dylib这个驱动文件,该文件在笔者电脑上的路径如下:

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5/Qt/plugins/sqldrivers/libqsqlmysql.dylib 

在该文件目录下打开命令行窗口,并执行otool -L libqsqlmysql.dylib

此时会发现红框处的动态库的路径和名称与我们实际安装好的路径和名称不同,所以PyQt5才会找不到:

笔者MySQL动态库的路径和名称如下:

/usr/local/Cellar/mysql/8.0.12/lib/libmysqlclient.21.dylib

那我们接下来要做的就是把路径和名称修改掉,同样在libqsqlmysql.dylib该驱动文件所在的目录下打开命令行窗口,输入截图中的命令。该命令分为几个部分:

1. install_name_tool -change 修改命令

2. /usr/local/mysql/lib/libmysqlclient.20.dylib 错误的路径和名称

3. /usr/local/Cellar/mysql/8.0.12/lib/libmysqlclient.21.dylib 正确的路径和名称

4. libqsqlmysql.dylib PyQt5的驱动文件

参考:

Qt 连接 mysql 驱动出错问题 QMYSQL driver not loaded - 简书

https://my.oschina.net/dking/blog/666216

Mac下Qt连接MySQL 驱动问题 - Sam大叔 - 博客园

PyQt5连接MySQL数据库,需要使用到`PyQt5.QtSql`模块中的`QSqlDatabase`类以及第三方库如`pymysql`或`mysql-connector-python`。以下是一个连接MySQL数据库的基本步骤: 1. 首先确保安装了连接MySQL的Python库,如`pymysql`或`mysql-connector-python`。 2. 导入必要的模块。 3. 创建数据库连接。 4. 打开数据库连接,并输入正确的数据库服务器信息。 5. 连接到指定的数据库。 6. 执行数据库操作。 7. 断开连接并清理资源。 下面是一个简单的示例代码: ```python import sys from PyQt5.QtSql import * from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QMessageBox # 创建数据库连接 def create_connection(): # 创建一个数据库对象 db = QSqlDatabase.addDatabase('QMYSQL') # 设置数据库连接信息 db.setHostName('localhost') db.setDatabaseName('your_database_name') # 你的数据库名 db.setUserName('your_username') # 你的用户名 db.setPassword('your_password') # 你的密码 db.setPort(3306) # 默认端口号是3306 # 尝试打开连接 if not db.open(): QMessageBox.warning(None, "Error", "Database connection failed: " + db.lastError().text()) return False return True class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('PyQt5 MySQL') self.setGeometry(300, 300, 400, 200) # 其他初始化设置... if __name__ == '__main__': app = QApplication(sys.argv) mainWin = MainWindow() # 创建连接MySQL数据库 if create_connection(): print("Database connected") else: print("Error: Cannot connect to the database") mainWin.show() sys.exit(app.exec_()) ``` 在这个例子中,我们首先尝试创建一个数据库连接对象,并设置了主机名、数据库名、用户名和密码。然后尝试打开连接,如果成功,连接将返回True,否则会在消息框中显示错误信息。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

la_vie_est_belle

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值