您的位置 首页 > 数码极客

如何使用Qt操作mysql

今天用5.15配置了mysql 8.0的驱动,发现和以前的5.12稍有不同。

按照5.12的配置方法,用qDebug() << QSqlDatabase::drivers();会有支持mysql字样出现,但是无法加载驱动。

1.软件版本

软件版本 QT 5.15

mysql 8.0 (网上下载的安装包是32位的,实际安装到计算机上是64位版本)

安装mysql 8的时候,选择密码的老的认证方法,这样,不用向以前再去表里面改认证方式。

2. 用qt编译mysql

2.1 修改 my

my

D:\alantop_dir\alantop_ide\Qt\Q\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql

my做如下修改

INCLUDEPATH +="D:\alantop_dir\alantop_data\my\include"

LIBS +="D:\alantop_dir\alantop_data\my\lib\libmy;

DESTDIR = ../mysql/lib/

生成的lib库文件:D:\alantop_dir\alantop_ide\Qt\Q\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql\lib

编译的时候有提示一个工程路径错误,不影响,继续生成。

工程编译后生成这三个:libq

2.2 把生成的文件拷贝到对应目录

把libmy 添加到QT bin目录下(如:D:\alantop_dir\alantop_ide\Qt\Q\5.12.9\mingw73_64\bin) (显示有驱动,但是无法加载就是这里少了MySQL的dll)

把q添加到sqldrivers目录下(如:D:\alantop_dir\alantop_ide\Qt\Q\5.12.9\mingw73_64\plugins\sqldrivers)

3. qt 开发mysql程序 (注意qt的位数和mysql的位数对应 如果用32位的,都用32位,如果用64位的,对应都用64位的)

3.1 修改工程文件

QT += core gui sql


3.2 qt连接mysql代码


qDebug() << QSqlDatabase::drivers();

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

db.setHostName("127.0.0.1");

db.setUserName("test1");

db.setPassword("12345678");

db.setDatabaseName("wealth");

if (!db.open())

{

QMessageBox::warning(this, "fail", db.lastError().text());

return;

}

QSqlQuery query;

query.exec("select name from bankbase");

while ())

{

qDebug() << query.value("name").toString();

}

db.close();


4.mysql的查询

以下查询使用mysql数据库查询

use mysql


mysql 查询数据库的安装版本

show variables like "%version_%"


查看用户的密码的认证方式


修改mysql 8.0密码认证方式

CREATE USER test1@'%' IDENTIFIED WITH mysql_native_password BY '12345678'

GRANT ALL on *.* TO test1@'%'


附件是编译好的库,对应编译器 mingw81_64,使用只需要把对应的文件拷贝到对应目录即可。

下面是qt 5.12版本配置MySQL 8.0的驱动视频,可以参考下。(主要区别是动态链接库那个地方,多了2个文件)

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何使用Qt操作mysql”边界阅读