Qt连接mysql数据库遇到QMYSQL driver not loaded
本文件向各位博友分享一下我在Qt开发过程中,连接mysql数据库时遇到的问题,以及解决的方法,希望对遇到同样问题的博友有所帮助。
工程运行环境:vs2015+Qt5.8
在开发过程中,编写数据库连接函数,然后运行代码,报以下错误:
QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
数据库连接代码整理如下:
bool RegisteredUi::ConnectMysql()
{
QString ipaddress = "127.0.0.1";
QSqlDatabase m_db = QSqlDatabase::addDatabase("QMYSQL"); //数据库类型
m_db.setHostName(ipaddress); //内网IP"192.168.1.108" //主机名localhost192.168.0.142
m_db.setDatabaseName("Original_Records"); //数据库名称Original Records
m_db.setPort(3306);
m_db.setUserName("root"); //用户名
m_db.setPassword("password"); //密码
if (!m_db.open())
{
QMessageBox::information(0, "连接失败",
"请确定网络是否连接正常,或者mysql服务器的IP是否有效!",
QMessageBox::Cancel);
return false;
}
else
{
QMessageBox::information(this, "连接成功", "mysql 数据库连接成功 !");
return true;
}
}
解决方法:
1.先安装mysql数据库,确保数据库安装成功
2.提示mysql.h源文件找不到,解决方法如下:
#include "mysql.h" //添加mysql.h头文件编译提示
解决方法:
1. 将mysql安装目录下的C:\Program Files\MySQL\MySQL Server 8.0文件夹下的include文件夹拷贝到工程文件夹下,如下图:
2. 然后右击工程,属性-》c/c++常规,将include添加到附加包含目录中,如下图所示:
添加完成如下图所示:
点击确定,应用重新编译工程,刚刚报错提示找不到mysql.h源文件的错误消失了,然后realse编译代码,发现还是会报同样的错误,解决方法与debug模式的解决一样。
2. 编译虽然通过了,但是运行过程中会有如下提示:
Qt VS Tools: QML debug: Debugging project 'OriginalRecord'...
Qt VS Tools: QML debug: DISABLED: QML debugging disabled in Qt project settings
解决方法如下:
将mysql安装目录C:\Program Files\MySQL\MySQL Server 8.0下的lib文件夹拷贝到工程项目下,如下图所示:
点击项目右键-》属性-》链接器-》找到附加库目录,将lib文件添加进去,如下图所示:
添加成功后如下图所示:
找到链接器下的输入-》附加依赖项,然后将需要的xx.lib文件添加进去,如下图所示:
mysql需要的lib文件有libmysql.lib和mysqlclient.lib两个,添加后如下图所示:
添加完成之后重新编译项目,运行程序还是会有相同的提示:是因为与mysql有关的xx.dll文件没有添加到工程中。
添加拷贝libmysql.dll文件到工程同级目录下的x64文件夹中的debug和release文件中。也可以直接拷贝到C:\Windows\System32下面
写的不好,希望见谅,希望能够帮组有需要的博友解决问题。
如果以上还没有解决,将mysql安装目录下C:\Program Files\MySQL\MySQL Server 8.0\bin的libeay32.dll,ssleay32.dll,libmecab.dll文件拷贝到工程同级目录下的x64文件夹中的debug和release文件中。