qt连接mysql数据库连接失败(解决方法)

数据库连接错误信息提示:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7

出现这个问题的原因是Qt中没有MySql driver或者是版本有问题导致的,解决的方法是找到Qt源码重新寻找MySql driver的驱动。

解决方案1:从mysql server中复制libmysql.dll到qt对应的安装目录下(bin路径);

解决方案2:从mysql官网上去下载对应的数据库版本。(要根据qt的版本)
注意:QT选用的Windows32位要对应32位的mysql。
注意:QT选用的Windows64位要对应64位的mysql。
例如:
将mysql安装文件的lib目录下的libmysql.dll和libmysqld.dll复制到Qt5.5中的mingw493_32的bin文件下。
链接:https://pan.baidu.com/s/1FBPjWBHvIwDbkIoXAC_MKg
提取码:nki3
这个是32位的mysql安装包
链接:https://pan.baidu.com/s/1AdQk90f_B8W9UjSvb65N_Q
提取码:hdpg
这个是64位的mysql安装包
复制这段内容后打开百度网盘手机App,操作更方便哦
mysql安装步骤:
先解压然后
修改my-default.ini,修改后如图1-2所示
在这里插入图片描述
文件修改的内容如下:(D:\mysql-5.7.17-winx64改成自己的路径)
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
#设置mysql的安装目录
basedir=“D:\mysql-5.7.17-winx64”
#设置mysql数据库的数据的存放目录
datadir=“D:\mysql-5.7.17-winx64\data”
#允许最大连接数
max_connections=200
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

以管理员身份运行命令提示符,切换到MySQL的bin目录下,输入mysqld install命令(注意是mysqld而不是mysql)回车,即可安装MySQL,如下图所示:
在这里插入图片描述
安装好MySQL后,可以输入net start mysql来启动MySQL,输入net stop mysql 来关闭MySQL服务,也可以在服务里面手动启动/关闭MySQL服务;
安装过程报错和注意事项
我在安装成功后启动MySQL服务时,服务启动不了,提示:MySQL服务无法启动 服务没有报告任何错误 请键入NET HELPMSG 3534 以获得更多帮助,如下:
在这里插入图片描述
解决方案:安装好MySQL后,打开cmd命令窗口,并且进入到MySQL安装目录中的bin目录,然后输入如下命令回车即可:mysqld --initialize-insecure --user=mysql
执行完上面命令后,MySQL会自建一个data文件夹,并且建好默认数据库,登录的用户名为root,密码为空,之后就可以通过命令net start mysql启动mysql服务了。
注:MySQL升级到5.7版本是没有data文件夹的,执行mysqld --initialize-insecure --user=mysql命令会自动新建data文件夹。

qt的pro里面记得加入QT += sql
头文件记得加入

#include <QSqlDatabase>
#include<QSqlQuery>
#include<QSqlError>

关键的数据库连接语句如下:

   QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");//本地名字也可以用(127.0.0.1)
    db.setUserName("root");//数据库用户名
    db.setPassword("123456");//数据库用户密码
    db.setDatabaseName("123");//数据库的名字

这里你要对应你自己的数据库信息。(每个人的数据库都是不一样的)

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值