数据库连接错误信息提示:
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_cnotallow=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");//数据库的名字
这里你要对应你自己的数据库信息。(每个人的数据库都是不一样的)