Qt:QSqlDatabase:未加载QMYSQL驱动程序

时间:2017-08-10 16:18:24

标签: c++ mysql qt sqlite

我刚刚开发了QT CRUD应用程序。我正在使用SQLite将信息本地存储在运行应用程序的磁盘中。这样我的应用程序工作正常。

但该应用程序缺少一个中央数据库服务器。为此,我开始安装MySql-server和MySql-workbench。我在工作台中导入了我的数据库,并确保服务器正在运行。

现在在Qt上,我写了以下几行来连接我的服务器" localhost"使用端口" 3306"如下:

db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName(databaseName);
db.setUserName(userName);
db.setPassword(userPass);

qDebug() << appDataPath;

if (!db.open()){
    return db.lastError().text();
}

但是,我在QT&#34;应用程序输出&#34;:

上收到以下错误
  

QSqlDatabase:未加载QMYSQL驱动程序   QSqlDatabase:可用的驱动程序:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

我尝试确保libmysql.dll位于&#34; C:\ Program Files \ MySQL \ MySQL Server 5.7 \ lib&#34; ..

我也将它复制到&#34; C:\ Users \ Abubakr \ Documents \ GitHub \ DEBUG \ build-Muwassa-Desktop_Qt_5_4_2_MinGW_32bit2-debug&#34;

但根本不起作用。

请帮助!!

1 个答案:

答案 0 :(得分:0)

您需要先自己构建QMYSQL驱动程序。

当你下载Qt时,你也有它提供的来源。

就我而言,它位于:C:\Qt\5.9\Src\qtbase\src\plugins\sqldrivers\mysql 这里有一个* .pro(这是一种makefile生成器)。你只需要用QtCreator打开它,编译它就会得到一个dll。这个dll是MySQL驱动程序,必须与您的应用程序位于同一位置。

要做到这一点,如果你有编译问题(比如找不到mysql.h),你也必须“安装”mysql库。

在Linux中,你也可以遇到同样的问题。