qt没有合适的驱动:因为Qt和MySQL是来自不同企业的产品,由于MySQL版本的修改和更新,Qt官方默认提供的QMYSQL驱动已经过旧,无法适用新版本的MySQL(来自其他博客)。
qt环境准备(Qt5.12.4):smvc2015_64
mysql环境:mysql-5.5.27-winx64.msi
编译驱动:
1)用smvc2015_64 环境构建编译项目E:\installpath\Qt5.12.4\5.12.4\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
2)mysql安装路径:D:\mysqlServer\lib
3)编译生成:E:\installpath\Qt5.12.4\5.12.4\Src\qtbase\src\plugins\sqldrivers\mysql\myLib
4)将生成库放入qt中对应的驱动文件夹下:E:\installpath\Qt5.12.4\5.12.4\msvc2015_64\plugins\sqldrivers3
5)mysql 动态库放入运行文件夹中 F:\code\DigitalConstructionSite\release
6)测试
MySQLDataBase::MySQLDataBase(QObject *parent) : QObject(parent)
{
qDebug() << QSqlDatabase::drivers();//查询支持的数据库类型
mySqldata_ = QSqlDatabase::addDatabase("QMYSQL");
mySqldata_.setHostName("118.25.6.222");
mySqldata_.setPort(3306);
mySqldata_.setUserName("root");
mySqldata_.setPassword("mysql123");
mySqldata_.setDatabaseName("guang_yang");
mySqldata_.open();
if(!mySqldata_.open())
{
qDebug()<<mySqldata_.lastError().text();
//QMessageBox::warning(nullptr,"错误",mySqldata_.lastError().text());
return;
}
QString sql = "create table ccctbale(\
qt varchar(10),\
xml date\
);";
QSqlQuery query(mySqldata_);
query.exec(sql);
}