一、第一部分
0.Qt 连接mysql数据库时报错:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
QT连接代码:
bool createMysqlConn()
{QSqlDatabase sqldb = QSqlDatabase::addDatabase("QMYSQL");sqldb.setHostName("localhost");sqldb.setDatabaseName("emarket");sqldb.setUserName("root");sqldb.setPassword("123456");return sqldb.open();
}
1.我的环境:Qt 5.14.2 、MinGW 7.3 32 位(mingw73_32)、mysql-connector-c-6.1.3-win32
mysql-connector-c-6.1.3-win32
Qt源码我安装Qt时选中了Source!
二、第二部分
1.修改文件mysql.pri,..\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
2.修改文件qsqldriverbase.pri,..\Src\qtbase\src\plugins\sqldrivers\qsqldriverbase.pri
将第四行注释,添加include(./configure.pri)
3.在..\Src\qtbase\src\plugins\sqldrivers\mysql目录执行cmd(mingw73_32的工具链已被我加入path)
执行qmake,将生成makefile 文件
4.执行mingw32-make,进行编译
编译完成后,将在mysqlDll目录下生成 qsqlmysql.dll文件。
5.可以执行mingw32-make install或手动将qsqlmysql.dll文件 拷贝到 mingw73_32/plugins/sqldrivers下,(qsqlmysql.dll属于是qt中与mysql client连接部分的代码,光有它还不能连接mysql服务器,即3306端口)
6.将mysql-connector-c-6.1.3-win32 下的libmysql.dll 文件拷贝到mingw73_32/bin下,(连接mysql的代码始终在libmysql.dll中,所以这一步是必须的)
7.完成