本文件向各位博友分享一下我在Qt開發過程中,連接mysql數據庫時遇到的問題,以及解決的方法,希望對遇到同樣問題的博友有所幫助。
工程運行環境:vs2015+Qt5.8
在開發過程中,編寫數據庫連接函數,然后運行代碼,報以下錯誤:
QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
數據庫連接代碼整理如下:
#include "mysql.h"
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文件中。
