Using MySQL in Qt5.7 on Windows
2017-01-20 11:20
344 查看
Using MySQL in Qt5.7 on Windows
最近有一个小项目要用到MySQL作为数据库。于是就试了一下Qt的MySQL的driver。先按照教程一步一步来。在.pro中添加SQL库
QT += sql
添加头文件
#include < QSqlDatabase>
代码如下:
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.
步骤大致如下:
首先你要现在一个MySQL Community Server
然后进到Qt MySQL的source code目录,
\Qt\QT %version%\Sources\qtbase\src\plugins\sqldrivers\mysql\
执行一下command
qmake “INCLUDEPATH+=%mysql%\include” “LIBS+=%mysql%\lib\libmysql.lib” -o Makefile mysql.pro
mingw32-make
Copy qsqlmysql.dll and qsqlmysqld.dll from** \Qt\Qt%version%\Sources\qtbase\plugins\sqldrivers** to \Qt\%version%\5.0.1\mingw47_32\plugins\sqldrivers.
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**
解决方案
首先下载MySQL server版本,地址 http://dev.mysql.com/downloads/mysql/。 请一定要选择Windows (x86, 32-bit), ZIP Archive 这一个。install出来的版本不存在libmysqld.dll解压之后把libmysqld.dll libmysqld.lib libmysql.dll libmysql.lib拷贝到C:/Windows下面即可
相关文章推荐
- MYSQL 5.7 Linux脚本出现[Warning] Using a password on the command line interface can be insecure.
- mysql 5.7 Warning: Using a password on the command line interface can be insecure. 解决方案
- windows下用Python连接mysql报错问题“MySQLdb in Python: “Can't connect to MySQL server on 'localhost'””
- MySQL 解决数据导出问题:Using a password on the command line interface can be insecure.
- 【MySQL】MySQL 5.7 "Your password has expired.To log in you must change it using a client that suppor"
- Installing MySQL on Microsoft Windows Using a noinstall Zip Archive,在Windows上使用非安装压缩包安装MySQL
- using cppunit in eclipse ide on windows
- 解决MySQL5.6 Warning: Using a password on the command line interface can be insecure
- MySQL5.7出现Your password has expired. To log in you must change it using a client that supports expir
- MySQL 5.6 Warning: Using a password on the command line interface can be insecure
- Installing MySQL on Microsoft Windows Using a noinstall ZIP Archive
- Qt 4.5 and MySQL-plugin with Mingw on Windows XP
- mysqldump Warning: Using a password on the command line interface can be insecure.
- mysql5.0 Using a password on the command line interface can be insecure.最简单的解决办法
- Installing MySQL on Microsoft Windows Using a noinstall Zip Archive
- zabbix监控mysql之Warning: Using a password on the command line interface can be insecure.
- MYSQL报警:Warning: Using a password on the command line interface can be insecure.
- mysql 5.7 To log in you must change it using a client that supports expired passwords
- Mysql 5.7 错误号码1862 Your password has expired. To log in you must change it using a client...
- MySQL5.6 Using a password on the command line interface can be insecure解决方法;