本文只適用於Windows平台mingw編譯器
系統:Windows XP
Qt版本:4.8.0
Qt Creator版本:2.4.1
安裝路徑:
Qt -> D:\Qt\4.8.0
Qt Creator -> D:\Qt\qtcreator-2.4.1
mingw -> D:\Qt\qtcreator-2.4.1\mingw
1.配置環境變數:
到“我的電腦->屬性->進階->環境變數->系統變數”中編輯Path,添加:
;D:\Qt\4.8.0\bin;D:\Qt\qtcreator-2.4.1\bin;D:\Qt\qtcreator-2.4.1\mingw\bin
確定;為了讓環境變數生效,如果配置環境變數之前已經開啟cmd,要重新開啟一個新的cmd視窗。
2.下載mysql
官網www.mysql.com下載,非安裝包的檔案名稱類似這種格式:mysql-5.5.29-win32.zip
我下載的安裝包:http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.29-win32.zip
只需要mysql裡面的lib和include,所以這裡我提供一個精簡包,:mysql_lib_include.rar
解壓到D:\
3.下載mingw-utils-0.3.tar.gz,
解壓出來,將bin檔案夾裡面的reimp.exe拷貝到D:\Qt\qtcreator-2.4.1\mingw\bin目錄,不拷貝也行,調用reimp手動添加絕對路徑。
4.編譯驅動
開啟cmd,執行以下命令:
(1)轉換libmysql格式
d:
cd d:\mysql\lib
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a
(2)編譯qt的mysql驅動
cd d:\qt\4.8.0\src\plugins\sqldrivers\mysqlqmake "CONFIG+=release" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.promingw32-makeqmake "CONFIG+=debug" -o Makefile "INCLUDEPATH+=d:/mysql/include" "LIBS+=d:/mysql/lib/libmysql.a" mysql.promingw32-make
5.拷貝mysql驅動
編譯完成後,開啟D:\Qt\4.8.0\src\plugins\sqldrivers\mysql目錄,可以看到release和debug目錄,分別從release和debug目錄中拷貝以下4個檔案到D:\Qt\4.8.0\plugins\sqldrivers:
qsqlmysql4.dll
libqsqlmysql4.a
qsqlmysqld4.dll
libqsqlmysqld4.a
6.拷貝mysql動態庫(重要)(1)本機運行
拷貝D:\mysql\lib\libmysql.dll檔案到D:\Qt\4.8.0\bin
(2)沒有mysql的電腦
若要發布應用程式,要跟著libmysql.dll一塊發布,與應用程式同級目錄。
7.測試mysql可用性
加入已經存在mysql服務,那麼編寫以下代碼測試:
(1).測試是否有驅動
QStringList driverList = QSqlDatabase::drivers();qDebug() << driverList;//運行結果:("QSQLITE", "QMYSQL3", "QMYSQL", "QODBC3", "QODBC")?
如果存在QMYSQL和QMYSQL3就是正確的
(2).測試mysql是否可用
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");db.setHostName("192.168.1.23");db.setDatabaseName("testsql");db.setUserName("root");db.setPassword("root");bool ok = db.open();qDebug() << ok;//運行結果:true
若為true,說明串連成功
8.提供編譯成功的mysql驅動
我的版本上面已經寫了:Windows, Qt4.8, mingw
:qt4.8_mingw_qsqlmysql4.rar