Qt5.8連接MySQL數(shù)據(jù)庫,會出現(xiàn)如下錯誤:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
解決方法是對癥下藥绑洛,在網(wǎng)上找了很多教程都沒有成功,下面的解決方法經(jīng)過驗證是可以的:
1 安裝mysql
sudo apt-get install mysql-server
sudo apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
2 查看哪些依賴庫是缺失的
其實無法啟動的真正原因是依賴庫確實童本,而不是缺少MySQL驅(qū)動真屯。
用命令行打開如下文件夾,根據(jù)自己的情況做調(diào)整:
cd /opt/Qt5.8/5.8/gcc_64/plugins/sqldrivers
輸入:
ldd libqsqlmysql.so
會看到類似下面的內(nèi)容:
qking@qkingros:/opt/Qt5.8/5.8/gcc_64/plugins/sqldrivers$ ldd libqsqlmysql.so
linux-vdso.so.1 => (0x00007ffeb19d7000)
libQt5Sql.so.5 => /opt/Qt5.8/5.8/gcc_64/plugins/sqldrivers/./../../lib/libQt5Sql.so.5 (0x00007f98b97b4000)
libQt5Core.so.5 => /opt/Qt5.8/5.8/gcc_64/plugins/sqldrivers/./../../lib/libQt5Core.so.5 (0x00007f98b9093000)
libmysqlclient.so.18 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 (0x00007f98b8b33000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f98b8915000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f98b86fb000)
libssl.so.10 => not found
libcrypto.so.10 => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f98b84f6000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f98b81f2000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f98b7eec000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f98b7cd5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f98b790d000)
libicui18n.so.56 => /opt/Qt5.8/5.8/gcc_64/plugins/sqldrivers/./../../lib/libicui18n.so.56 (0x00007f98b7474000)
libicuuc.so.56 => /opt/Qt5.8/5.8/gcc_64/plugins/sqldrivers/./../../lib/libicuuc.so.56 (0x00007f98b70bb000)
libicudata.so.56 => /opt/Qt5.8/5.8/gcc_64/plugins/sqldrivers/./../../lib/libicudata.so.56 (0x00007f98b56d8000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f98b54d0000)
libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f98b52cd000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f98b4fc5000)
/lib64/ld-linux-x86-64.so.2 (0x0000560f0cd61000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f98b4d86000)
你會發(fā)現(xiàn)有幾項依賴庫是缺失的:
libssl.so.10 => not found
libcrypto.so.10 => not found
這就是問題所在穷娱。
3 安裝缺失的依賴
針對我的錯誤安裝绑蔫,如果有其他錯誤可以自行百度或者參考最后的鏈接。還可以看一下下一篇泵额。
sudo apt-get update
sudo apt-get install libssl1.0.0 libssl-dev
然后建立連接:
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10
這樣就可以了配深,再次執(zhí)行:
ldd libqsqlmysql.so
就沒有缺失的依賴了。