配置環境變量,
把qt的msvc2017_64的bin目錄添加至環境變量(具體我就不累贅了,就是那個path)
新建Qt項目
點擊Finish
然后找到main.cpp,進行編輯,代碼如下
1 #include "test.h" 2 #include<QtWidgets/QApplication> 3 #include<qsqldatabase.h> 4 #include<qmessagebox.h> 5 #include<qdebug.h> 6 #include<qsqlerror.h> 7 int main(int argc, char *argv[]) 8 { 9 QApplication a(argc, argv); 10 /*test w; 11 w.show(); 12 */ 13 qDebug() << QSqlDatabase::drivers(); 14 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 15 db.setDatabaseName("test"); 16 db.setHostName("localhost"); 17 db.setUserName("root"); 18 db.setPassword("root"); 19 db.setPort(3306); 20 if (db.open()) { 21 QMessageBox::warning(NULL, QString("Tip"), QString("success"), QMessageBox::Yes); 22 return -1; 23 } 24 else { 25 QMessageBox::critical(0, QObject::tr("fail"), db.lastError().databaseText(), QMessageBox::Cancel); 26 return 0; 27 } 28 //return a.exec(); 29 }
要特別注意db.setPassword里面的密碼要和navicat里面設置的密碼保持一致,不然會有如下結果:
把項目屬性設置一下:
然后順着Qt安裝目錄找到這個mysql.pro,
選擇編譯器后點擊Configure Project
指定mysql鏈接庫:
將生成路徑(mysql/lib)下剛剛生成的驅動文件qsqlmysql.dll及qsqlmysqld.dll
拷貝至msvc2017_64的驅動文件夾,替換原本的驅動,如下圖:
理論上是可以生成那兩個dll的,但是我搞了半天也沒有生成,最后拿了別人生成成功的那兩個dll...這里我也卡住了
最后加載驅動,將mysql解壓目錄lib目錄下的libmysql.dll拷貝至msvc2017_64的bin目錄下:
編譯運行:
成功了!
**我搞了一天,百度了很久,最后還是沒有生成那兩個dll,還是拿了別人生成成功的,然后把數據庫的那個dll加進來,即使是這樣也不一定成功,
因為我之前疏忽導致環境變量沒配好,期間我重裝了兩次Qt,最后頑強的連接上了,搞了一天,整個人都不好了,快崩潰了,總之這3個dll要搞到位,
環境變量也要配好,連接數據庫的代碼也要注意**