文章目录
- 0 背景
- 1 编译过程
- 2 福利
- 参考
0 背景
因为项目要用到对MYSQL数据库操作,所以需要连接到MYSQL数据库。但是连接需要MYSQL驱动,但是Qt本身不自带MYSQL驱动,需要自行编译。网上有很多qt之前版本的mysql驱动,但是没有找到qt6.5.3版本的,所以只好自己编译。
编译好的文件如下:
1 编译过程
1,如果没有下载qt源代码的,可以通过在终端运行下面的指令,
- windows:
.\MaintenanceTool.exe --mirror https://mirror.nju.edu.cn/qt
; - Mac:
./MaintenanceTool.app/Contents/MacOS/MaintenanceTool --mirror https://mirror.nju.edu.cn/qt
。
如果不需要更换镜像,可以不加--mirror https://mirror.nju.edu.cn/qt
。
2,打开mysql驱动编译程序/Users/mac/Qt6.5/6.5.3/Src/qtbase/src/plugins/build-sqldrivers-Qt_6_5_3_for_macOS-Release/CMakeCache.txt
;
mac:
windwos:
3,修改/Users/mac/Qt6.5/6.5.3/Src/qtbase/src/plugins/CMakeLists.txt
文件;
mac:
SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR "/usr/local/Cellar/mysql@5.7/5.7.44_1/include/mysql")
SET(MySQL_LIBRARY "/usr/local/Cellar/mysql@5.7/5.7.44_1/lib/libmysqlclient.20.dylib")
windows:
SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR "D:/mysql-8.0.36-winx64/include")
SET(MySQL_LIBRARY "D:/mysql-8.0.36-winx64/lib/libmysql.dll")
- mac下载mysql
brew uninstall mysql
brew cleanup --prune=all mysql
rm -rf /usr/local/var/mysql
brew install mysql@5.7
- windows下载mysql源代码地址,安装方法。可以不用安装成功。
4,然后编译程序,得到编译后的mysql驱动;
mac:
windows:
虽然会报错,但是还是可以成功编译出mysql驱动。
5,把编译好的驱动程序放到/Users/mac/Qt6.5/6.5.3/macos/plugins/sqldrivers
文件夹中;
mac(编译好的文件,存在的位置):
windows(编译好的文件,存在的位置):
如果是windwos,还需要把下面的两个文件放入到D:\Qt\Qt5.15.2\6.5.3\mingw_64\bin
中。
6,编写程序测试驱动。
#include "mainwindow.h"#include <QApplication>
#include <QSqlDatabase>
#include <QDebug>int main(int argc, char *argv[])
{QApplication a(argc, argv);// MainWindow w;// w.show();qDebug()<<"查看目前可用驱动";QStringList drivers = QSqlDatabase::drivers();for(auto driver: drivers){qDebug()<<driver<<" ";}//设置数据库驱动QSqlDatabase db1 = QSqlDatabase::addDatabase("QMYSQL", "connection1");db1.setHostName("192.168.0.104");db1.setUserName("root");db1.setPassword("password");db1.setPort(3309);db1.setDatabaseName("test_db");if(db1.open()){qDebug()<<"数据库打开成功";}return a.exec();}
得到如下结果:
mac:
windwos:
2 福利
编译好的mysql驱动,含windows和mac版本的(5.14.2,5.15.2,6.5.3),链接如下:
链接:https://pan.baidu.com/s/1m15DbFuFTtXfEyqyOS2cew
提取码: 2o2s
参考
https://blog.csdn.net/m0_52072919/article/details/130094915
https://blog.csdn.net/weixin_53989417/article/details/132586266