标签:qt、mysql
//连接MySQL数据库的函数 bool LoginView::createConnection() { QSqlDatabase t_db = QSqlDatabase::addDatabase("QMYSQL"); t_db.setHostName("localhost"); t_db.setDatabaseName("chatsystem"); t_db.setUserName("root"); t_db.setPassword("123456"); if(!t_db.open()) { //打开失败 QMessageBox::critical(0, QObject::tr("Database Error"), t_db.lastError().text()); return false; } return true; }
当我按下Ctrl+R后qt creator报出了一堆好大的错误。我百度了好久才发现qt本身是没有连接MySQL的驱动的,于是我便面临了一个“怎么用qt编译MySQL驱动"的问题。后来在网上找了很久,不得不说网上一些技术类的问题大部分都是n年前的。不过还是被我找到了我想要的东西(Qt5.1.1 编译 MySql5.6.17驱动程序的过程和注意事项)。
别想搞技术总是一帆风顺的,qt creator似乎和我开了个玩笑。其实那个人说的qtbase就在qt安装目录下的src文件里面有。但是我的不知道怎么回事,尽然连src文件都没有,如图:
解决方法就是重装qt,并且在选择想要安装的组件中勾上source components:
就这样,src文件也有了,我本以为这回应该OK了吧。但是我在编译mingw32-make命令的时候又出现了一大推的错误(说的好像是缺少什么文件,但是网上找了个遍硬是没找到)。开始我总以为是我的哪一步忘了操作或者是qt和MySQL没装好,于是我不停的卸了又装装了又卸。这样耗费了我一个下午的时间,但到晚上的时候依然还是那个错误,我崩溃了!
第二天,我又继续在网上找关于"qt编译MySQL驱动"的问题,结果是依然没有找到。但好消息是从某个网友的博客上看到了qt5.2以后的版本都自带了MySQL驱动(我的版本:qt5.1)。我便马上跑到官网上下了一个qt5.4(在这里我要吐槽一下某狗浏览器下载工具,竟然平均只有90kb/s。几百兆的东西,你应该能猜出我下了多久。最可恶的是当我下到90%的时候竟然出现0B/s后就不动了 。啊!!!又一次崩溃了!哈哈 不过也有亮点哦 我试探性的在下载条那里点击了右键,居然出现了"复制下载地址"。于是我马上祭出了我的神器——某雷,瞬间达到了600kb/s )。安装好,当我运行程序的时候,又出现了让我心痛的一幕:
遇见问题就百度,我按照网上的搞了好久都没搞好(可能真的是我太笨了!!!)。但我发现了个问题:
黑色框住的那个是我之前下的。其实qt有很多版本,黑色的和橙色的区别在于编译器的不同。终于,qt搞定了。由于我之前把MySQL已经卸掉了,我要重新安装一下,于是我又从MySQL官网下了一个mysql-installer-community-5.6.23.0(地址:http://dev.mysql.com/downloads/windows/installer/之前用的MySQL 5.5 ,想试一下最新版)。但是这其中又遇到了很多问题 ,首先出现了这个:
网上找了很久,还是没找到原因。于是我不管它,继续点next,下一步好像是从网上下载一些MySQL需要用到的包(这是软件在检查更新并下载。不得不说这个过程真的有点漫长,最主要的是下载的过程中竟然因为连接服务器失败又重新下了一次,再次崩溃!!!!!!)。网上有些资料上面讲可以通过勾选跳过选项而不需要去检查更新,但是我的还是没有。不知道是个别情况还是这个版本的MySQL就是这样的。不管这些,继续next,等了好久,虽然最后有一个叫connect c++的东东没有安装成功,但是总体来说还是OK了(安装上面的ok)。可当我想要打开MySQL的时候又出现了可恶的错误,我怎么这么惨呀!!!!于是我直接把MySQL5.6卸载了(搞这个已经搞了很久了,本来只是想用qt连接MySQL这么简单。此时此刻你应该理解我的心情!!!!)。没办法,只有走以前的老路,继续使用MySQL5.5(这回绝对的轻车熟路了)。
终于MySQL和qt全部搞定。测试一下:
还是出错了!哈哈 不过没关系!因为之前我在”qt编译MySQL驱动“这一问题上搞了很久,大致能知道这是什么问题。于是把D:\MySQL\lib\libmysql.dll复制到D:\Qt\5.4\mingw491_32\bin。
测试:
哈哈!!!终于成功了。。。。 以上便是我用qt连接MySQL的全过程。
标签:qt、mysql
原文地址:http://longlanbin.blog.51cto.com/5012686/1626179