首页 > 解决方案 > QSqlDatabase:未加载 QMYSQL 驱动程序

问题描述

当我运行此代码时,我遇到了 Qt 与 MySql 连接的问题

    QSqlDatabase DBObject = QSqlDatabase::addDatabase("QMYSQL");
    DBObject.setHostName("localhost");
    DBObject.setDatabaseName("SingleDB");
    DBObject.setUserName("root");
    DBObject.setPassword("abc123");
    bool ok = DBObject.open();

我得到了这个... QSqlDatabase:未加载 QMYSQL 驱动程序

我也已经这样做了:sudo apt-get install libmysqlclient

/home/wrm/Qt/5.12.3/gcc_64/bin/qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro

在这里我有这个错误: 项目错误:未定义库'mysql'

任何想法?

标签: linuxmysqlqt

解决方案


通常,当您收到“未加载驱动程序”错误时,问题在于 libqsqlmysql.so 所在的路径。

该库包含在 Qt 安装的 plugins/sqldrivers 文件夹中,并且 (sqldrivers) 文件夹应该可用于您的可执行文件。

您必须确保 sqldrivers 文件夹位于可执行文件的同一文件夹中(即默认查找路径之一)或使用QCoreApplication::addLibraryPath在代码中更改这些路径

所以,总结一下:

  1. 确保 sqldrivers 文件夹的路径(或更改插件查找路径)
  2. 确保也链接到 libmysqlclient(在我的系统上 libmysqlclient_r 只是到 libmysqlclient 的链接)
  3. 尝试发布一些对您不起作用的小代码。

推荐阅读