You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下Qt6连接PostgreSQL提示Driver not loaded问题求助

MacOS Ventura 13.1下Qt6.4加载PostgreSQL 15.1驱动失败的解决方法

1. 检查Qt驱动文件及依赖

  • 定位Qt的SQL驱动目录:你的Qt安装在/users/murzabaev/Qt/,对应Qt6.4的驱动路径为/users/murzabaev/Qt/6.4.x/macos/plugins/sqldrivers(将6.4.x替换为你实际的Qt子版本号)
  • 查看目录下是否存在libqsqlpsql.dylib文件,执行以下命令检查其依赖:
    otool -L /users/murzabaev/Qt/6.4.x/macos/plugins/sqldrivers/libqsqlpsql.dylib
    
  • 如果输出中libpq.5.dylib显示为not found,说明驱动无法找到PostgreSQL的库文件,需要修复依赖路径。

2. 修复驱动依赖路径

brew安装的PostgreSQL 15.1库路径为/opt/homebrew/Cellar/postgresql@15/15.1/lib/libpq.5.dylib,使用install_name_tool修改驱动的依赖:

install_name_tool -change libpq.5.dylib /opt/homebrew/Cellar/postgresql@15/15.1/lib/libpq.5.dylib /users/murzabaev/Qt/6.4.x/macos/plugins/sqldrivers/libqsqlpsql.dylib

修改完成后,再次用otool -L验证依赖是否正常。

3. 配置项目.pro文件

在Qt项目的.pro文件中添加PostgreSQL的头文件和库路径:

INCLUDEPATH += /opt/homebrew/Cellar/postgresql@15/15.1/include
LIBS += -L/opt/homebrew/Cellar/postgresql@15/15.1/lib -lpq

保存后重新构建项目。

4. 验证PostgreSQL服务及权限

  • 检查PostgreSQL服务状态:
    brew services list
    
    若postgresql@15未启动,执行以下命令启动服务:
    brew services start postgresql@15
    
  • 手动测试数据库连接,确保用户和数据库权限正常:
    psql -U murzabaev -d pr8
    
    若能成功进入数据库命令行,说明权限和数据库配置无问题。

5. 优化代码的连接验证

修改你的连接代码,增加错误检查,避免仅依赖driverName判断:

QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("pr8");
db.setUserName("murzabaev");
db.setPassword("*****");

qDebug() << "Available drivers:" << QSqlDatabase::drivers();
if (!db.open()) {
    QMessageBox::critical(0, "Connection Failed", db.lastError().text());
} else {
    QMessageBox::information(0, "Success", "Connected to PostgreSQL");
}

内容的提问来源于stack exchange,提问作者Chingiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:55:18