开发环境:Qt5.12.3+vs2017+mysql5.7.33 64位
总结一下Qt连接MySQL遇到的常见问题:
问题一:QsqlDatabase::drivers()输出的值为空,也就是Qt没有检测到数据库驱动。
解决办法一:新增系统变量QT_PLUGIN_PATH,值为Qt的安装路径到plugins,如:C:\Qt5.12.3\5.12.3\msvc2017_64\plugins,配置完重启系统生效,同时确保C:\Qt5.12.3\5.12.3\msvc2017_64\plugins\sqldrivers\目录下面存在qsqlmysql.dll和qsqlmysqld.dll。这个解决办法存在副作用,会导致qtcreator无法打开。
解决办法二:把C:\Qt5.12.3\5.12.3\msvc2017_64\plugins\目录下的sqldrivers文件夹拷贝到自己项目的执行目录中(推荐使用)。
问题二:出现QMYSQL driver not loaded信息。
解决办法:重新编译MySQL驱动,使用qtcreator打开Qt中MySQL的源码项目,路径在C:\Qt5.12.3\5.12.3\Src\qtbase\src\plugins\sqldrivers\mysql\具体路径根据自己的安装目录决定,修改如下图:
修改完成后点击编译,把生成的qsqlmysql.dll和qsqlmysqld.dll拷贝到C:\Qt5.12.3\5.12.3\msvc2017_64\plugins\sqldrivers\中,同时把MySQL安装目录\lib\下的libmysql.dll和libmysqld.dll拷贝到项目的执行目录中,注意MySQL是32位还是64位。
问题记录持续更新中……