Window下 Qt 编译MySQL驱动
搞了一整天的qt下连接mysql的事,终于搞定了
这里使用mysql的过程中主要会出现“QMYSQL driver not loaded”的错误,这有两种可能
1.qt找不到你的mysql的驱动。
先去你的Qt的安装目录(例:C:\Qt\4.8.5\plugins\sqldrivers)下找找看有没有mysql的驱动
驱动的名字为“libqsqlmysqld4.a ”和 “qsqlmysqld4.dll”(搜索的过程中很多人说是这两个文件“qsqlmysql.dll”和“qsqlmysqld.dll”,可能是qt4和qt5的却别,我的qt4最后编译mysql驱动生成的就是前面的两个)
如果能找到这两个文件,那么恭喜你,不需要自己去编译生成这两个驱动文件了
2.qt目录下有驱动文件,但是qt找不到mysql的库文件
库的文件名为“libmysql.lib”,这个库文件应该放在Qt的bin文件夹下(例:C:\Qt\4.8.5\bin)
赶紧去文件夹里看看,十有八九没有啊,怎么办呢?
去你mysql的安装目录找找,在lib文件夹里
另外强调一下,mysql的版本必须要和Qt一样。即32位都是32位,搞错了会出错的。
关于mysql的下载,我也是弄了很久,刚开始不知道mysql可以免安装,就以为下错了。其实mysql有安装和解压两种(不只是单纯的解压哦)
这里给个安装方法链接http://www.cnblogs.com/fnlingnzb-learner/p/6009153.html
接下来是重点,对mysql的驱动进行编译,以生成libqsqlmysqld4.a ”和 “qsqlmysqld4.dll”这两个文件
1.首先找到Qt安装目录下的mysql.pro工程源码,我的路径为:C:\Qt\4.8.5\src\plugins\sqldrivers\mysql
用Qt打开该工程,试着进行构建,一般来说,Qt会告诉你找不到mysql.h文件,这时候不要慌,去你的mysql安装目录下或者刚下载的压缩包里找找,找到include文件夹
然后在PRO中加入这两句
编译后,查找生成文件夹debug或release中会有这两个libqsqlmysqld4.a ”和 “qsqlmysqld4.dll”
复制后放入C:\Qt\4.8.5\plugins\sqldrivers这个路径,千万不要放错哦,然后就应该可以正常使用啦
2017/8/3更新 按上文连接发现有问题,文件夹下并没有data文件夹,添加方法如下:
输入cmd进入控制台
1.停止mysql,在命令窗口中输入并运行:net stop mysql 即可
2.进入到mysql安装目录的bin目录下。然后输入命令(备注:所有的--前面均有一个空格哦。建议直接复制,不要自己输入命令,以防丢失空格哦):
mysqld --initialize-insecure --user=mysql
然后回车;去目录下查看,已经自动创建好data文件夹,然后再次启动。
这里有个疑惑 用Qt连接数据库时,setDatabaseName()这个函数只有选择已经存在的数据库时,才可以连接,如果不存在则连接失败