Qt5 安裝MYSQL數據庫驅動
- 本文以Qt5.9.0爲準。
在Qt環境中使用MYSQL數據庫的同學,應該都遇到過下面這段提示:
QSqlDatabase: MYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
是的,QMYSQL在有效驅動的列表裏面,但是卻說MYSQL驅動沒裝!
先說我探索得出的結論是:需要手動編譯一個MYSQL驅動。
不用編譯了,找到mysql的lib和dll放到Qt bin路徑下就可以了。
Windows
從MYSQL官網下載mysql,exe安裝版或者zip壓縮版都可以,安裝/解壓後,找到安裝路徑/解壓路徑lib目錄下的libmysql.lib libmysql.dll這兩個文件,拷貝到Qt的mingw的bin路徑下,就能用了。
網址在這 https://dev.mysql.com/downloads/mysql/
找到圖一頁面,往下翻
解壓後找到dll和lib,複製粘貼到qt的bin路徑下
Ubuntu
手動編譯這種方法可能不需要了,待我實驗成功後,就把這種方法拋棄掉。
1. 安裝Qt源碼
Qt 安裝包提供了源碼,安裝Qt時可以選擇安裝源碼。也可以單獨到Qt官網下載源碼,地址是: http://download.qt.io/official_releases/qt/5.9/5.9.0/single/
2. 安裝依賴庫
`sudo apt-get install mysql-client libmysqlclient-dev libqt5sql5-mysql`
這一步是爲了得到MYSQL的頭文件和libmysqlclient.so庫,安裝完成後,頭文件一般是在/usr/include/mysql,而so庫在下面這幾個目錄其中之一:
/usr/lib/mysql
/usr/local/lib
/usr/lib/x86_64-linux-gnu/
我是通過命令才找到的:
sudo updatedb #更新Ubuntu的文件數據庫,時間可能久一點
locate libmysqlclient.so #通過數據庫搜索找到so文件的路徑
熟悉MYSQL的同學可以去官網下載一個壓縮包,解壓也是可以的。
https://dev.mysql.com/downloads/mysql/
在MySQL Community Server標籤下面,去找吧。
3. 編譯安裝mysql驅動
進入qt源碼路徑下的mysql目錄
$QTDIR/Qt5.9.0/5.9/Src/qtbase/src/plugins/sqldrivers/mysql
qmake 編譯該工程
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient" mysql.pro
make && make install
如果編譯時報錯:Project ERROR: Library 'mysql' is not defined.
把mysql.pro中的 QMAKE_USE += mysql用#註釋掉, 即 #QMAKE_USE += mysql