此文檔針對windows下Qt Creator + Qt SDK用戶,開發環境配置參見本人其他博文
qt由於授權許可的限制,Qt的開源版本沒有提供所有數據庫的驅動程序。免費下載的中只含有QSQLITE也就是SQLite的驅動程序,要想與mysql或oracle等連接需要自己編譯其驅動。
由於種種問題,經歷各種重裝,各種失敗,本人用了兩天才成功用qt連接上了mysql數據庫。(看網上其他教程都是分分鐘搞定 -_-!!)在這裏也寫一下自己的經歷。
下邊開始正文:
二.安裝mysql 安裝時不能選擇Typical型,這樣會缺少庫文件(include和lib文件夾)。啥都不管直接選擇FUll型。
三.將mysql安裝目錄下的include和lib兩個文件夾拷貝到qt\4.7.4\src\plugins\sqldrivers\mysql下。可以自己新建一個目錄如mysqllib。
四.修改mysql.pro文件,在第二行添加如下內容
INCLUDEPATH += "./mysqllib/include"
LIBS+= "./mysqllib/lib/libmysql.lib"
五.將QT的bin目錄和mingw的目錄都添加到環境變量的path中。
六.運行qt 4.7.4 Command Prompt 輸入以下命令(路徑自己注意修改)
cd qt\4.7.4\src\plugins\sqldrivers\mysql
qmake
mingw32-make release
mingw32-make debug
執行qmake後沒有返回結果,只是在mysql目錄下生成了debug和release的makefile文件Makefile.Debug和Makefile.Release。
全部執行完後,將release下的libqsqlmysql4.a,qsqlmysql4.dll和debug下的libqsqlmysqld4.a,libqsqlmysqld4.dll 拷貝至
QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers
目錄下
七.將mysql的庫文件libmysql.dll拷貝到QtSDK\Desktop\Qt\4.7.4\mingw\bin 目錄下
接下來運行一個例子看驅動是否裝好:
新建一個qt gui 控制檯項目SQLtest
在SQLtest.pro中加入QT +=sql
接着修改main.cpp如下
#include
<QtCore/QCoreApplication>
#include
<QtSql>int main(int argc,
char *argv[]){
QCoreApplication a(argc, argv);
qDebug() << "Available
drivers:";
QStringList drivers =
QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<< driver;
qDebug() << "End";
return a.exec();
}
執行程序輸出爲:
Available drivers:
"QSQLITE"
"QMYSQL3"
"QMYSQL"
End
其中有"QMYSQL"則表示編譯mysql的驅動成功了!!