如何在 Qt 应用程序中连接到 MySQL 服务器
Posted
技术标签:
【中文标题】如何在 Qt 应用程序中连接到 MySQL 服务器【英文标题】:How to connect to a MySQL server in a Qt application 【发布时间】:2016-02-03 16:39:24 【问题描述】:我需要在一个Qt应用程序中连接一个mysql服务器,所以我写了如下代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("xxx");
db.setUserName("xxx");
db.setPassword("xxx");
db.setDatabaseName("xxx");
db.open();
不幸的是,当我尝试直接从 Qt Creator 运行此代码时,它在 addDatabase
函数调用之后给我以下错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
我尝试打印最后一个错误代码:
qDebug() << db.lastError().text();
输出
"Driver not loaded Driver not loaded"
当然,我在同一台计算机上安装了 MySQL 服务器。
为什么?我究竟做错了什么?我该如何解决?
【问题讨论】:
【参考方案1】:您有一些事情需要检查。检查这些帖子,也许它们对你有帮助。
http://www.qtcentre.org/threads/55365-QSqlDatabase-QMYSQL-driver-not-loaded-but-available
QMYSQL driver available but not loaded
【讨论】:
我已经看过了。不幸的是,我没有 libmysqlclient.dll,只有它的静态版本(.lib 文件)。我还尝试将整个sqldrivers
目录复制到debug
文件夹,但没有帮助
你有 qmyssql.dll 吗?
是的,在sqldrivers目录下
我认为问题在于您没有libmysql.dll
。认为有时 .lib 文件只是应用程序和 .dll 之间的“桥梁”。看看这个,也许你以前没见过seppemagiels.com/blog/create-mysql-driver-qt5-windows
我已经把 libmysql.dll 放到了可执行文件的附近和 sqldrivers 目录中以上是关于如何在 Qt 应用程序中连接到 MySQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章