工作日第二天,上午阅读工作源码,下午安装mysql并调整QT的mysql链接。
事件1:
QT的编译器,我们选择的是32位的,但Mysql在官网下载过程中,实际下载安装得到的是64位的程序。同时Mysql发展到现在8.0,ConncetorC++包含了C,已经无法单独找到C的文件夹。
最终,找到了旧版本的Mysql升级exe,安装了32位的Mysql server 5.7。
事件2:
在解决QT的mysql连接问题时,这里建议直接找到......\qtbase\src\plugins\sqldrivers\mysql(请注意,前面的内容取决于你的安装目录,但后面应该是固定的)。用QTCreator打开mysql.pro,直接在Creator中添加内容。主要是LIBS和INCLUDEPATH两个。
“mysql.h文件不存在”,如果,在已经添加了上面说的LIBS和INCLUDEPATH后,出现这个问题,那就意味着是因为,这两个后面的目录里出现了空格。
注意,如果大家的Mysql默认安装,会安装到Program File下面,整个目录必然包括空格。这种情况下,建议大家不要去试图重装和该目录,太麻烦了,建议使用下面的方法:
LIBS += -L$$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib)
INCLUDEPATH += $$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include)
————————————————
版权声明:本文为CSDN博主「草上爬」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/caoshangpa/article/details/53689038
事件3:
最后一定要注意,实际生成的qsqlmysql.dll以及qsqlmysqld.dll两个文件,并没有随着mysql.pro的工程编译目录保存在目录里(又或者时我没有注意到它本身就有多个目录)。
以我为例,我的QT安装在C:\QT\........,我的两个dll生成目录为C:\plugins\sqldrivers。
我今天参考的是【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)_嵌入式开发工程师---欢迎大家一起交流-CSDN博客,中间遇到了新的问题,最终形成本文,作为我下午配置环境过程中遇到的问题的总结。
我并不确定,如果我直接安装Mysql Server 8.0的64位版,能不能顺利搞定。但是我并不想继续去尝试了。
我只能说,久远的文档不再具有太大的参考价值。比如
- 对于Mysql,C的包已经被容纳到C++
- 至关重要的include目录和libmysql.lib文件,要去Mysql Server X.X的目录下面找到,根本不用去网上下载
最后我想说的是,透过现象看本质。
不同版本的mysql里面包含不同的libmysql.dll, 不同的libmysql.dll必须和配套的qsqlmysqld.dll qsqlmysql.dll一起才能正常工作.
我们要找到电脑上Mysql版本的libmysql.dll,去重新编译对应版本的qsqlmysqld.dll qsqlmysql.dll.