Using MySQL in Qt5.7 on Windows

Using MySQL in Qt5.7 on Windows


最近有一个小项目要用到MySQL作为数据库。于是就试了一下Qt的MySQL的driver。先按照教程一步一步来。

  1. 在.pro中添加SQL库

    QT += sql

  2. 添加头文件

    #include < QSqlDatabase>

  3. 代码如下:

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("bigblue");
    db.setDatabaseName("flightdb");
    db.setUserName("acarlson");
    db.setPassword("1uTbSbAs");
    bool ok = db.open();

    运行,得到以下结果:

    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

嗯哼,这是几个意思?

去看Qt安装目录下面,qmysql.lib qmysql.dll这俩货都有啊,怎么还不支持了呢。

难道是我使用的姿势不对。好吧,那趴着用一下试试(Google)。

方案一


网上有人说你需要自己编译一下mysql的code。WTF,老子用你的IDE就是图方便,这怎么还需要自己编译了呢。算了还是按照这个来吧。

先把别人的帖子链接贴一下:Create MySQL driver for Qt5 on Windows.

步骤大致如下:

  1. 首先你要现在一个MySQL Community Server
  2. 然后进到Qt MySQL的source code目录,

    \Qt\QT %version%\Sources\qtbase\src\plugins\sqldrivers\mysql\

  3. 执行一下command
    qmake “INCLUDEPATH+=%mysql%\include” “LIBS+=%mysql%\lib\libmysql.lib” -o Makefile mysql.pro
    mingw32-make
  4. Copy qsqlmysql.dll and qsqlmysqld.dll from** \Qt\Qt%version%\Sources\qtbase\plugins\sqldrivers** to \Qt\%version%\5.0.1\mingw47_32\plugins\sqldrivers.
  5. Copy libmysql.dll from %mysql%\lib to C:\Windows

按照上面的步骤,在第三步的时候出现了错误。
(⊙o⊙)…,蛋疼。然后,我他妈就把Qt重新装了一下。发现还是build失败 凸(艹皿艹 )了 失败了呢

方案二


后来又看到说qmysql.dll依赖于libmysql.dll。后一个是MySQL提供的。奥,既然qmysql.dll已经存在了,那应该是不是把libmysql.dll放在**C:\Windows**下面就可以了? 说干就干。放完之后,发现。┗|`O′|┛ 嗷~~ My God!!!! 依然是**QSqlDatabase: QMYSQL driver not loaded**。 艹了。 等等,mySQL的lib库里面怎么还有一个libmysql**d**.dll呢。难道这是debug版本。于是把这个libmysqld.dll libmysqld.lib一起放到C:\windows下面。 哈哈哈哈哈哈,居然成功了。吊炸天 **binggo**

解决方案


  1. 首先下载MySQL server版本,地址 http://dev.mysql.com/downloads/mysql/。 请一定要选择Windows (x86, 32-bit), ZIP Archive 这一个。install出来的版本不存在libmysqld.dll
  2. 解压之后把libmysqld.dll libmysqld.lib libmysql.dll libmysql.lib拷贝到C:/Windows下面即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值