Qt5.2可以找到mysql驱动但无法加载它

时间:2014-01-09 03:50:01

标签: c++ mysql qt qtsql qsqldatabase

操作系统:win7 编译器:mingw4.8(附Qt5.2) 链接到:Fedora核心版本5,i686上的内核2.6.15-1.2054_FC5 smp

    db = new QSqlDatabase();
    db->addDatabase("QMYSQL");
    db->setHostName("localhost");
    db->setDatabaseName("myclinic");
    db->setUserName("root");
    db->setPassword(",trth12");  

    qDebug() << loader.errorString();
    qDebug() << "drivers: "<< QSqlDatabase::drivers();

    if (db->open())
        qDebug() << "Success!";
    else
        qDebug() << db->lastError().text();

消息

  

QSqlDatabase:QMYSQL驱动程序未加载QSqlDatabase:可用   驱动程序:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL 7“共享   找不到库。“drivers:(”QSQLITE“,”QMYSQL“,”QMYSQL3“,   “QODBC”,“QODBC3”,“QPSQL”,“QPSQL7”)

     

“驱动程序未加载驱动程序未加载”

3 个答案:

答案 0 :(得分:2)

你似乎要么缺少Windows上的mysql插件或正确的mysql安装本身,在这种情况下你需要通过在你的系统上安装所有必需的mysql库来完成它,插件QtSql驱动程序可以识别它。

插件应该在plugins / sqldrivers文件夹下作为dll提供。您也可以将它放在应用程序旁边的sqldrivers文件夹中,所以有点像这样:

- yourapplication.exe
- sqldrivers/qsqlmysql4.dll

你需要以某种方式抓住它,或者自己构建它。这是文档中如何解释的解释:

  

How to Build the QMYSQL Plugin on Windows

     

您需要获取MySQL安装文件。运行SETUP.EXE并选择“自定义安装”。安装“Libs&amp; Include Files”模块。按如下方式构建插件(这里假设MySQL安装在C:\ MySQL中):

cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\MySQL Server <version>\lib\opt\libmysql.lib" mysql.pro
nmake
  

如果您不使用Microsoft编译器,请在上面的行中将make替换为make。

但是您的代码还有另一个问题。对于mysql数据库,您应该使用“127.0.0.1”而不是“localhost”。

答案 1 :(得分:0)

感谢您的回答,但问题不在于我缺少qsqlmysql.dll但我没有libmysql.dll(看起来这个dll不带win7)。

这是一个video,它向您展示如何安装mysql

答案 2 :(得分:0)

我和你有相同的铅

解决方案是:

Qt MySQL驱动程序已经在Qt5中(但在之前的版本中没有!)

你只需要app app(或windows目录)旁边的“libmysql.dll”!你可以在“mysql \ mysqlX.X.XX \ lib \ opt”目录中找到“libmysql.dll”。

如果Qt MySQL驱动程序未找到libmysql.dll,则错误与找不到驱动程序相同...

下一次的好机会!