使用 Qt 5.11.2,並安裝了 XAMPP 3.2.2
想要用 Qt 寫一支能讀寫 MySQL 的程式
但不管怎麼處理,輸出始終給我報
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: ... QMYSQL ...
這個錯誤
找了網路上很多答案,大概分兩種
- 需要重編 Qt 裡面 mysql 的 driver
原本覺得這個方法可能最好,要哪一版就編適合自己的
但我這個版本的 Qt 放 source 的位置跟一些舊資料又不太一樣,後來才發現是在 C:\Qt\Qt5.11.2\5.11.2\Src\qtbase\src\plugins\sqldrivers 底下
而且編譯的時後又遇到很多問題,像是版本與 MySQL 衝突、32/64、找不到 qtsqldrivers-config.pri 檔案等等...
甚至還給我找到 Qt 裡面的 bug !
https://github.com/bincrafters/community/issues/530
又讓我多花時間去裝 5.12.0,最後才發現用不到 - 找到 libmysql.dll 這個檔案,把它丟到 Qt 裡面
找這個檔案容易,問題是哪一個才是我要的,同樣檔名的檔案一大堆
有人說去 MySQL 官網找下載 mysql-connector-c 這個東西載下來,裡面就有了
問題我載也載了,甚至也安裝了 MySQL
( 用 XAMPP 的話不建議再裝一個,裝的話 port 要設不一樣 )
裡面就是沒有阿!
我甚至還去載 MariaDB 的下來改名字,但照樣不能用。
才發現,我找的 connector 8.0 太新了,裡面的 libmysql.dll 不知道消失到哪裡去了
最後,終於載了 connector/c 6.x 的版本,找到這個該死的檔案,丟進去直接解決問題
詳細解法步驟 ( for Windows 。linux 我不確定)
- 到 https://downloads.mysql.com/archives/c-c/ 去找適合自己的 32/64 下載( zip 即可 )
- 找出 lib\libmysql.dll 這個檔案
- 丟到 C:\Qt\Qt5.11.2\5.11.2\你用的編譯工具\bin 底下 ( Qt 路徑每個人不一樣 )
- 重開 Qt Creator
就這樣,沒給我 error 了,如此簡單四步驟,害我頭痛那麼久
希望這篇能救到一些人,或是大家都不像我一樣那麼蠢
沒有留言:
張貼留言