您的位置:首页 > 编程语言 > Qt开发

Qt4.8.7连接MySql数据库(windows环境)

2016-04-01 15:48 405 查看

1.软件准备

qt-opensource-windows-x86-mingw482-4.8.7.exe
Qt4的最后一个版本,bug应该是最少的,其他版本也类似。官方下载链接(329M)
mysql-5.5.37-win32.msi MySql数据库,安装时注意选择全部安装。百度网盘下载(33M)

2.安装MySql

之前安装的没时候没有截图,大家网上搜一下,很详细。
安装完成后,C盘根目录新建一个MySql文件夹,把C:\Program Files (x86)\MySQL\MySQL Server 5.5目录下的include和lib文件夹拷贝到C:\MySql。

3.可视化数据库操作

MySql安装完成了,可是对于像和我一样sql语句都不怎么会的人来说当然还需要一个可视化操作软件,这里推荐Navicat,自己下载安装吧,我懒,算了,给个百度网盘连接(Navicat下载
这里有一个非常重要的地方,如果你要远程访问数据库,那么修改用户root@localhost,改为root@%



4.编译Qt的MySql驱动

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("192.168.2.128");
db.setPort(3306);
db.setDatabaseName("sdjk");
db.setUserName("root");
db.setPassword("");
bool ok = db.open();
if (ok)
{
qDebug() << QString("数据库打开成功");
}
else
{
qDebug() << "数据库打开失败:" << db.lastError();
}
上面这段代码就是打开数据库的代码了,不出什么以外的话应该有下面这个错误:

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

数据库打开失败: QSqlError(-1, "Driver not loaded", "Driver not loaded")

就是说没有MySql驱动,只有sqlite、odbc3、obdc驱动。
下面开始编译驱动:

打开C:\Qt\4.8.7\src\plugins\sqldrivers\mysql里面的mysql.pro
pro文件里添加两行,就是包含前面Sql数据库的头文件和库,(不知道问什么第二行那样写不行,认不到)
INCLUDEPATH += "C:/MySql/include"

#LIBS += "C:/MySql/lib/libmysql.lib"

LIBS += -LC:/MySql/lib \

-lmysql


编译,debug和release版本都编译一下,编译好后把debug下的libqsqlmysqld4.a、qsqlmysqld4.dll和release下的libqsqlmysql4.a、qsqlmysql4.dll拷贝到C:\Qt\4.8.7\plugins\sqldrivers
把C:\MySql\lib下的libmysql.dll拷贝到C:\Qt\4.8.7\bin下,发布程序的时候也要这个动态库。

5.结束

就这样了,以后有什么会继续补充的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: