Qt 5.9 下连接 MySQL,可能会出现一个这个无法连接的错误
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
解决办法如下:
根据 Qt版本不同 ,32 和 64 的 ,需要的驱动是不同的。无论 MySQL 是什么版本的,64 位 Qt 要用 64 位的 Mysql 驱动,32 位的 Qt 要用 32 位的MySQL 驱动。
我们需要把 /MySQL/lib (自己的 Mysql 安装目录在哪儿自己找)目录下的 libmysql.dll 拷贝到 / Qt/mingw53_32/bin 目录下面就可以了哦。
测试代码如下:
{
QSqlDatabase dbconn;
QSqlQuery query;
dbconn = QSqlDatabase::addDatabase("QMYSQL");
dbconn.setHostName("localhost");//主机名字
dbconn.setDatabaseName("mysql");//数据库名字
dbconn.open("root", "123456");//用户名、密码,成功返回1
query = (QSqlQuery)dbconn;
query.exec("select * from user");
while(query.next())
{
int id = query.value(0).toInt();
QString name = query.value(1).toString();
qDebug() << QString::number(id) + " : "+ name;
}
}
测试结果为:
Debugging starts
"0 : root"
"0 : root"
"0 : root"
"0 : "
在进行 MySQL 操作之前,请确保 MySQL 服务已经开启。