错误描述
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
场景
使用Qt Create连接数据库时抛出错误,连接代码具体如下:
db = QSqlDatabase::addDatabase(database.DatabaseType);//MySQL数据库 db.setHostName(database.DatabaseIP); // 主机名 db.setDatabaseName(database.DatabaseName); // 数据库名 db.setUserName(database.DatabaseUserName); // 连接用户名 db.setPort(database.DatabasePort); // 端口号 db.setPassword(database.DatabasePassword); // 连接密码 qDebug() << database.DatabaseType << database.DatabaseIP << database.DatabaseName << database.DatabaseUserName <<database.DatabasePort<<database.DatabasePassword; if(false == db.open()) { QMessageBox::warning(NULL, u8"Error",u8"账号或者密码错误!"); exit(EXIT_FAILURE); }
解决方案
这个是因为缺少mysql的驱动导致的,这里我们需要将libmysql.dll文件复制到qt的安装路径下。
查找libmysql.dll
如果你本地安装过mysql,那么就省事多了。直接去mysql的安装路径下:C:\Program Files\MySQL\MySQL Server 5.6\lib。这时我的路径(安装的默认路径)。
如果你没有安装mysql,那么就需要从官网下载。然后在下载的压缩包中找到libmysql.dll文件。
将libmysql.dll复制到指定路径
首先需要找到Qt的安装路径,我的路径为:D:\Qt\Qt5.9.9\5.9.9
。然后到图中所示路径下,可以看到有MinGW、msvc2013、msvc2015、msvc2017等,这里就是你使用的编译器。
使用MinGW编译
使用MinGW编译需要复制到MingGW路径下:D:\Qt\Qt5.9.9\5.9.9\mingw53_32\bin
,将前面找到的libmysql.dll文件复制到这里。
使用哪个编译就到哪个文件中的bin目录进行复制即可。
运行
这里我们需要切换到MinWG编译器中。
然后就可以正常登录咯。
关于Oracle的驱动问题
Oracle需要通过cmake软件手动生成,或者使用 别人生成好的。
C++常见错误
fatal error C1189: #error: STL1003: Unexpected compiler, expected C++ compiler
error C2041: illegal digit ‘9‘ for base ‘8‘ | error C2059: syntax error: ‘bad suffix on number‘
Qt5Error:msvc-version.conf loaded but QMAKE_MSC_VER ins‘t set
Error:E0415 no suitable constructor exists to convert from “int“ to “Rational“
Error:E0415 no suitable constructor exists to convert from “int“ to “Rational“