目录
1.问题示例:
2.解决方法
2.1 MySQL位数和QT编译器(构件套件)的位数要相同
(1)MySQL查看,打开mysql命令行,输入密码登录,输入“status”回车,即可查看:x86_64
(2)QT编译器(构件套件)查看
2.2 Qt源码自己编译所需dll文件
2.3 大功告成
1.问题示例:
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("test_mysql");
db.setUserName("root");//uesr
db.setPassword("xxxxxxx");//密码
if (db.open())
{
QMessageBox::about(this,"yeah","success");
}
}
结果报错:
百度了许久,在尝试了好几次失败,软件重装、重启电脑总结出解决该问题的一些可解决方法。
2.解决方法
2.1 MySQL位数和QT编译器(构件套件)的位数要相同
(1)MySQL查看,打开mysql命令行,输入密码登录,输入“status”回车,即可查看:x86_64
(2)QT编译器(构件套件)查看
总之位数一定一低一定要和MySQL对应(重要事情说三遍)
2.2 Qt源码自己编译所需dll文件
(1)找到qt安装路径的,源码mysql.pro打开。比如我的在这里
“ C:\Qt\Qt5.12.11\5.12.11\Src\qtbase\src\plugins\sqldrivers\mysql ”
(2)打开后:
QMAKE_USE += mysql 这个把它删了(或者注释了也行,万一删了以后又需要用);
添加下面方框里的东西:
# 添加你自己的mysql安装目录下的include文件
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include"
# 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件
LIBS += "C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.dll"
# 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。
DESTDIR = ../mysql/lib/
(3)选择左边mysql,右键“执行qmake”,然后在构建
(4)找到mysql/lib打开,
全选复制
(5)粘贴到对应的那个构建套件的驱动目录下(我的是mingw73_64 这个)
我的路径为:
C:\Qt\Qt5.12.11\5.12.11\mingw73_64\plugins\sqldrivers
(5)此时回来运行测试代码(我一开始满怀期待,结果还是不行)
可见,此时报错,但多出了QMYSQL QMYSQL3,说明mysql驱动已经有了
不用管继续
(6)去MySQL安装路径下找到libmysql.dll,直接搜索就完了,RT
找到之后,复制到Qt对应构建套件的bin目录下
2.3 大功告成
这样子,差不多就能解决问题了。
注意:
(1)MySQL和构件套件位数要相同(很重要)。
(2)测试代码千万别写错了,仔细一点,不然瞎忙活半天
(3)可以重启QT、重启电脑试试(虽然我也不知道有没有用,反正所有的试了不行再试试)
不要害怕失败,多尝试。
更多推荐
总结QT连接MySQL数据库问题:“QSqlDatabase: QMYSQL driver not loaded,QSqlDatabase: available
发布评论