Qt5 安装MYSQL数据库驱动
- 本文以Qt5.9.0为准。
在Qt环境中使用MYSQL数据库的同学,应该都遇到过下面这段提示:
QSqlDatabase: MYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
是的,QMYSQL在有效驱动的列表里面,但是却说MYSQL驱动没装!
先说我探索得出的结论是:需要手动编译一个MYSQL驱动。
不用编译了,找到mysql的lib和dll放到Qt bin路径下就可以了。
Windows
从MYSQL官网下载mysql,exe安装版或者zip压缩版都可以,安装/解压后,找到安装路径/解压路径lib目录下的libmysql.lib libmysql.dll这两个文件,拷贝到Qt的mingw的bin路径下,就能用了。
网址在这 https://dev.mysql.com/downloads/mysql/
找到图一页面,往下翻
解压后找到dll和lib,复制粘贴到qt的bin路径下
Ubuntu
手动编译这种方法可能不需要了,待我实验成功后,就把这种方法抛弃掉。
1. 安装Qt源码
Qt 安装包提供了源码,安装Qt时可以选择安装源码。也可以单独到Qt官网下载源码,地址是: http://download.qt.io/official_releases/qt/5.9/5.9.0/single/
2. 安装依赖库
`sudo apt-get install mysql-client libmysqlclient-dev libqt5sql5-mysql`
这一步是为了得到MYSQL的头文件和libmysqlclient.so库,安装完成后,头文件一般是在/usr/include/mysql,而so库在下面这几个目录其中之一:
/usr/lib/mysql
/usr/local/lib
/usr/lib/x86_64-linux-gnu/
我是通过命令才找到的:
sudo updatedb #更新Ubuntu的文件数据库,时间可能久一点
locate libmysqlclient.so #通过数据库搜索找到so文件的路径
熟悉MYSQL的同学可以去官网下载一个压缩包,解压也是可以的。
https://dev.mysql.com/downloads/mysql/
在MySQL Community Server标签下面,去找吧。
3. 编译安装mysql驱动
进入qt源码路径下的mysql目录
$QTDIR/Qt5.9.0/5.9/Src/qtbase/src/plugins/sqldrivers/mysql
qmake 编译该工程
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient" mysql.pro
make && make install
如果编译时报错:Project ERROR: Library 'mysql' is not defined.
把mysql.pro中的 QMAKE_USE += mysql用#注释掉, 即 #QMAKE_USE += mysql