我已经看过其他人这个问题,但我找不到有效的解决方案。我已经将MySQL下载了一段时间,并将其用于Web开发,但这是我第一次尝试将其与Qt联系起来。
这是我的main.cpp
文件:
#include "mainwindow.h"
#include "passwords.h"
#include "signup.h"
#include <QApplication>
#include <QWidget>
#include <QtSql>
#include <QDebug>
#include "qsqldriver.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString servername = "LOCALHOST//QMYSQL";
QString dbname = "test";
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setConnectOptions();
QString dsn = QString("DRIVER={SQL Native Client};SERVER=%1;DATABASE=%2;Trusted_Connection=Yes;").arg(servername) .arg(dbname);
db.setDatabaseName(dsn);
if(db.open()){
qDebug() << "Opened";
db.close();
}
else{
qDebug() << "Error =" << db.lastError().text();
qDebug ( ) << QSqlDatabase :: drivers ( );
}
MainWindow w;
w.show();
return a.exec();
}
我在.pro
文件中包含以下内容:
INCLUDEPATH += /Users/tomeldridge/downloads/mysql-5.6.17-osx10.7-x86_64/include
INCLUDEPATH += /Users/tomeldridge/downloads/mysql-5.6.17-osx10.7-x86_64/lib
INCLUDEPATH += /Applications/XAMPP/xamppfiles/htdocs/xampp/sqlite/include
INCLUDEPATH += /Applications/XAMPP/xamppfiles/htdocs/xampp/sqlite
我收到错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
如果我使用SQLite,我会收到错误:
Error: out of memory opening database
我尝试使用Qt文档中的代码从头开始构建驱动程序:
-no-sql-<driver> ... Disable SQL <driver> entirely.
-qt-sql-<driver> ... Enable a SQL <driver> in the Qt Library, by default
none are turned on.
-plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
at run time.
Possible values for <driver>:
[ db2 ibase mysql oci odbc psql sqlite sqlite2 tds ]
这显然要求您下载了我去过的Qt源代码,因此您可以使用Qt Configure。一路上出了问题,我试图在终端上使用的命令也没有用。
我还尝试将MySQL lib
文件的副本移动到Qt lib
目录中,因为我看到有人为之工作,但我没有运气。
我已经完成了几项尝试并让它发挥作用,我之前已经连接过MySQL,但是我已经浪费了两天试图让数据库运行,所以任何帮助都会太棒了。