windows环境下Qt连接MySql
程序员文章站
2022-03-09 13:36:31
...
环境
windwos: v10
mysql: v5.7.29 x32
Qt creator: v4.11.0
Qt: v5.14.0 (MVSC 2017 x32)
安装mysql
这里使用mysql非安装版
//配置my.ini
mysqld --initialize //初始化data目录
mysqld install //安装mysql服务
net start mysql //开启mysql服务
//根据data目录下的.err文件中生成的随机密码登陆mysql
ALTER USER USER() IDENTIFIED BY root'; //修改密码
flush privileges;//刷新权限
安装qt
在安装时选择源码(source)
编译qt-mysql驱动
使用qt-creator打开
C:\Qt\Qt5.14.0\5.14.0\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
编辑:
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#注释原有引用
#QMAKE_USE += mysql
#-----新增------
QT += sql
#mysql include 目录
INCLUDEPATH += C:\mysql-5.7.29-win32\include
#mysql 库文件
LIBS += -LC:\mysql-5.7.29-win32\lib -llibmysql
#-----------
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
构建
驱动文件会生成在:Qt所在盘符/plugins中
将驱动文件(.lib,.dll)粘贴到QT_HOME/plugins/sqldrivers中
引入mysql库文件(libmysql.dll,libmysql.lib)至QT_HOME/bin
测试连接
创建demo工程
编辑demo.pro
QT+=sql
加载驱动测试
编辑main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "QtSql"
int main(){
QApplication a(argc, argv);
MainWindow w;
#------新增------
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver,drivers){
qDebug()<<driver;
}
#------新增------
w.show();
return a.exec();
}
编译运行输出
"QSQLITE"
"QMYSQL"
"QMYSQL3"
"QODBC"
"QODBC3"
"QPSQL"
"QPSQL7"
数据库连接测试
创建连接类DatabaseLinker
databaselinker.h
#ifndef DATABASELINKER_H
#define DATABASELINKER_H
#include "QtSql"
class DataBaseLinker
{
private:
QSqlDatabase db;
public:
DataBaseLinker();
};
#endif // DATABASELINKER_H
databaselinker.cpp
#include "databaselinker.h"
DataBaseLinker::DataBaseLinker()
{
this->db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setUserName("root");
db.setPassword("root");
db.setDatabaseName("test");
bool ok = db.open();
if(ok){
qDebug()<<"db linked successful";
return ;
}
qDebug()<<"db link failed";
}
main.cpp
#include "QtSql"
#include "databaselinker.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver,drivers){
qDebug()<<driver;
}
DataBaseLinker *linker = new DataBaseLinker();
w.show();
return a.exec();
}
output
"QSQLITE"
"QMYSQL"
"QMYSQL3"
"QODBC"
"QODBC3"
"QPSQL"
"QPSQL7"
db linked successful
上一篇: qt设置应用程序图标
下一篇: QT 的动态二维数组创建方法
推荐阅读
-
Mac OS下配置PHP+MySql环境
-
windows环境下面安装Apache2.4+MySql5.7+PHP5.6,apache2.4mysql5.7_PHP教程
-
在Windows下安装MySQL的图形管理工具phpMyAdmin_PHP
-
phpmyadmin 下载 MAC OS X环境下配置APACHE+PHP+MYSQL+PHPMYADMIN
-
windows2008下配置iis+mysql+phpmyadmin运行phpmyadmin提示异常
-
Windows下使用PuTTY连接Centos7、Linux系统目录结构、一些操作命令
-
Windows7下PHP开发环境安装配置图文方法_PHP教程
-
Windows XP下全新安装Apache2,PHP5,MYSQL5,Zend的简单过程_PHP
-
Ubuntu下LAMP环境搭建 Apache、MySQL、PHP
-
CentOS下安装启动MySQL及调用QT