linux的QT连接mysql还不没做,可能类似吧
本文是引用https://blog.csdn.net/jin761153454/article/details/100760807,感谢博主
我是用的是64位的QT与64为的mysql【网上说一定要一样的位数,否则不行,我没测试】
有的人说:将你mysql里的lib下的这几个文件复制到QT的sqldricers里面就可以使用mysql了
mysql测试代码:
#include <QSqlDatabase>
#include <QDebug>
#include <QSqlError>
void MainWindow::avaliableDrivers()
{
qDebug()<<"Avaliable drivers;";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver,drivers)
qDebug()<<driver;
}
void MainWindow::connectMysql()
{
db = QSqlDatabase::addDatabase("QMYSQL"); //连接的MYSQL的数据库驱动
db.setHostName("localhost"); //主机名
db.setPort(3306); //端口
db.setDatabaseName("emarket"); //数据库名
db.setUserName("root"); //用户名
db.setPassword("123456"); //密码
db.open();
//测试连接
if(!db.open())
{
qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
return ;
}
else
{
qDebug()<<"连接成功"<<"connect to mysql OK";
}
db.close();
}
//类似的错误信息
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins
所以就有了下面的文章
自己重新编译mysql驱动
1.使用QtCreator打开mysql.pro文件
2.修改pro文件
TARGET = qsqlmysql
#QMAKE_USE += mysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#同时屏蔽QMAKE_USE += mysql:如下.如果不屏蔽会提示mysql库不存在
#QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
#添加mysql头文件和lib【#该路径是下载解压后的mysql的头文件路径】
INCLUDEPATH += "D:/fileInstallPath/mysql-5.7.30-winx64/include"
LIBS += "D:/fileInstallPath/mysql-5.7.30-winx64/lib/libmysql.lib"
#设置输出目录(有的时候不好找,索性自己设置输出目录)
DESTDIR = ../mysql/lib/
那么接下来,就点击编译按钮即可.不用其他操作.如果顺利你可以在目录下看到lib目录,如下
我只有3个文件,我看博主有5个,下面是博主的
接下来就是将新生成的lib里面的文件复制到QT的sqldrivers那边(lib里面的全部复制)
重新编译你的mysql测试代码【应该就ok了】