我使用的是Qt6.5,然后发现Qt6.5默认没有MySQL的驱动的,然后需要自己安装。结合了诸多博主还有bilibili视频然后成功了,现在写一下配置记录。
参考视频:
Qt6.3.1加载mysql数据库驱动
Qt 6.5.2 一镜到底,只用Qt编译MySQL驱动,不用VS Studio。
首先就是配置前的准备了:
1、Qt(要有Source组件,没有的话自己启动MaintenanceTool.exe 找到对应的source下载一下)。
2、MySQL ServerX.X文件夹下的include和lib文件夹(没有的话建议配置一下MySQL环境,配好就有了)。
我们要做的事:
1、在Qt\版本号\mingw_64\bin目录下添加两个文件,这两个文件分别是:libmysql.dll、libmysql.lib
2、手动生成qsqlmysql.dll和qsqlmysql.debug文件并将其加入\Qt\版本号\mingw_64\plugins\sqldrivers目录下
开始配置:
1、给QT添加libmysql.dll、libmysql.lib文件。
来到你的MySQL ServerX.X文件夹下点开lib文件找到libmysql.dll、libmysql.lib
将找到的两个文件复制到:Qt\版本号\mingw_64\bin,如下图。
2、手动生成qsqlmysql.dll和qsqlmysql.debug文件。
2.1、复制MySQL ServerX.X目录下的include和lib到一个你随意创建的文件下面,唯一要求该文件路径不能有空格建议创建在桌面,事后删除。
2.2、修改.cmake.conf文件,该文件路径:\Qt\版本\Src\qtbase\src\plugins\sqldrivers.cmake.conf
往该文件中添加三行代码,(记得\换/,保存退出):
SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR "xx/xx/xx/include") 这个是你刚才创建文件下include的文件路径
SET(MySQL_LIBRARY "xx/xx/lib/libmysql.lib") 这个是你刚才创建文件下lib文件下libmysql.lib的文件路径
我的如下:
2.3、右击与.cmake.conf同目录下的CMakeLists.txt选择QT打开(或者用QT打开这个文件)并且选择你的编译套件,点击config
文件打开之后点击小锤子开始编译:
编译成功之后qsqlmysql.dll和qsqlmysql.debug就生成成功了。
2.4、找到qsqlmysql.dll和qsqlmysql.debug将其放到 \Qt\版本号\mingw_64\plugins\sqldrivers下
2.4.1、找到项目构建目录,如下图所示:
复制构建目录路径并且打开
选择plugins->sqldrivers,就能看到编译生成的qsqlmysql.dll和qsqlmysql.debug如下图所示:
然后复制,来到 :\Qt\版本号\mingw_64\plugins\sqldrivers下进行粘贴如下图所示。
至此环境配置就ok了。
执行代码:
qDebug() << QSqlDatabase::drivers(); //打印Qt支持的数据库驱动
结果如下:
写代码连接数据库:
//打印Qt支持的数据库驱动
qDebug() << QSqlDatabase::drivers();
//添加Mysql数据库
QSqlDatabase db =QSqlDatabase::addDatabase ( "QMYSQL") ;//连接数据库
db.setHostName("127.0.0.1"); //数据库服务器IP
db.setUserName("root") ; //数据库用户名
db.setPassword("密码");//密码
db.setDatabaseName("mysql") ; //使用哪个数据库
//打开数据库
if( !db.open())//数据库打开失败
{
QMessageBox::warning (this,"错误",db.lastError().text() );
return;
}
qDebug()<<"opne success ";
最后输出:qDebug()<<"opne success "; 显示连接成功。
如果显示MYSQL数据库可用但是运行代码的时候报如下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL
那么建议还是重新安装一下MySQL吧,本人就是的,一样的操作在别人电脑上可以但是在自己电脑上报错,最终原因貌似是MySQL数据库那边的驱动有问题,这个问题重装一下也是可以解决的。