首先,由于自己的认知有限,所以Qt连接MySQL的过程很痛苦。花费了很多的时间和精力,但还是有挺多收获。
一、Qt以及MySQL的安装
1.Qt4.8.5的安装教程
2.MySQL5.5的安装教程
最开始我是用Qt4.8.5连接MySQL5.6.23,但是一直不成功,后来就把MySQL给换了,终于才成功。
二、Qt配置MySQL的驱动
可以参考该篇教程,对于其中的4.2,即编译Qt的MySQL驱动这部分,建议参考这篇教程,其中的一些认知也是很值得学习的。
三、测试与连接
首先打开Qt Creator新建一个空的Qt项目,新建之后再建一个main.cpp文件,并且在项目的pro文件中加上:”QT += sql”这句话。
1.测试MySQL驱动是否安装成功
#include <QtCore/QCoreApplication>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<< driver;
qDebug() << "End";
return a.exec();
}
如果运行结果中含有QMySQL和QMySQL3的话,那就说明驱动安装成功。
2.连接数据库
这里假设已经建立了一个数据库。
#include <QtCore/QCoreApplication>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mysql");//已建立的数据库名称
db.setUserName("user");//用户名称
db.setPassword("password");//密码
bool ok = db.open();//如果成功ok位true,否则为false
qDebug() << ok;
return a.exec();
}
输出为true,则成功,否则就失败。
调试
1.遇到了permission denied的问题
这个问题可能是你的哪个程序还在运行,需要先关掉。
感谢这几位的文章:
1:http://blog.youkuaiyun.com/qq_695538007/article/details/25720163
2:http://blog.youkuaiyun.com/u012963417/article/details/37773531
3:http://m.blog.youkuaiyun.com/blog/seamanj/46005525#
4:http://no001.blog.51cto.com/1142339/300920
5:http://blog.youkuaiyun.com/id19870510/article/details/5711329
6:http://www.qtcn.org/bbs/read.php?tid=4210