Qt连接Mysql8.2从安装到QMYSQL driver not loaded问题解决(详细!详细!详细!)
2023-12-22 09:32:36
目录
一、Mysql下载
下载路径:链接: link
二、Mysql安装
默认安装
这一步,设置一个自己能记住的密码!!这里设置为:123456
三、配置环境变量
按下Windows键,输入“环境变量”,搜索到“编辑系统环境变量”,点击
四、Mysql连接测试
- 以管理员身份运行打开命令行(如下图所示),必须以管理员身份,由于后续部分命令需要权限,会出现错误!(按下Windows键,输入cmd)
- 输入mysql -u root -p,输入密码,密码为安装时设置的root密码:123456,如果和下图所示一样,则说明你的mysql已经连接成功!
- 输入alter user ‘root’@‘localhost’ identified by ‘000000’;为修改密码,将初始设置的密码“123456”改为“000000”。
五、安装MySQL Workbench可视化软件
- 下载地址:链接: link
- 双击mysql-workbench-community-8.0.34-winx64.msi文件进行默认安装安装。
- 汉化(菜单栏)
网上找一个翻译的main_menu.xml文件替换到MySQL Workbench安装目录的data文件夹下。
- 打开MySQL Workbench。
- 创建一个数据库,通过sql语句或者手动创建都可以,我这里创建一个weinspectdb的数据库。
sql语句创建:
手动创建:
六、QT连接MySQL失败(报QMYSQL driver not loaded)
报错结果:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3
报错原因:
缺少MySQL驱动(qsqlmysql.dll,qsqlmysql.dll)
有时候有驱动但缺少库(libmysql.lib)
解决方法:
方式1、不推荐
- 需要 qsqlmysql.dll,qsqlmysql.dll,libmysql.lib这三个文件,不同版本的MySql里面包含不同的libmysql.dll, 不同的libmysql.dll必须和配套的qsqlmysqld.dll qsqlmysql.dll一起才能正常工作。
- qsqlmysqld.dll qsqlmysql.dll拷贝到Qt安装目录下的\plugins\sqldrivers中,MySql安装目录下找到libmysql.dll复制到Qt安装目录下的msvc2019_64\bin文件夹中。
- 这种方式有个问题是,qsqlmysql.dll,qsqlmysql.dll驱动在Qt5.12.0以后的版本不再提供,需要自己通过源码编译,找对应的版本又很困难,而且复制来复制去很麻烦,所以可以考虑第二种方式。
方式2、推荐
- 下载ODBC(作用类似于中间件,作为连接 qt 与 Mysql 之间的桥梁)
下载地址 链接: link
下载完默认安装即可。 - ODBC配置
按下Windows键,输入“ODBC”,搜索到“ODBC数据源(64位)”,点击
默认的连接名为:localhost_3306,Database选择已经创建好的weinspectdb数据库。
七、连接代码
QSqlDatabase sqldb = QSqlDatabase::addDatabase("QODBC");//连接数据库的类型使用QODBC,因为是通过ODBC进行连接的
sqldb.setHostName("127.0.0.1");//使用localhost也可以
sqldb.setDatabaseName("localhost_3306");//数据库名称使用localhost_3306连接名或创建的weinspectdb数据库名称都可以
sqldb.setUserName("root");
sqldb.setPassword("123456");//安装mysql设置的密码
sqldb.setPort(3306);//端口号
if (!sqldb.open())
{
qDebug() << "Failed to connect to database:" << db.lastError().text();
spdlog::error("sqldb open failed");
return;
}
文章来源:https://blog.csdn.net/weixin_42326676/article/details/135078433
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!