[英]QT 5.7 MySQL driver not loaded
There are quite a few questions/answers relating to this topic but I have tried all the posted solutions: 有很多与此主题相关的问题/答案,但是我已经尝试了所有已发布的解决方案:
System Info : 系统信息 :
Ubuntu Gnome 16.10 x86-64 Ubuntu Gnome 16.10 x86-64
MYSQL Version: MYSQL版本:
mysql Ver 14.14 Distrib 5.7.15, for Linux (x86_64) using EditLine wrapper 适用于Linux(x86_64)的mysql Ver 14.14 Distrib 5.7.15,使用EditLine包装器
Note: Each attempt ends up with this error message 注意:每次尝试最终都会显示此错误消息
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase:未加载QMYSQL驱动程序
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
QSqlDatabase:可用的驱动程序:QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
Tried: 尝试过:
Installing Packages for QT 4: 安装QT 4软件包:
apt-get install libqt4-sql-mysql
Installing Packages for QT 5: 安装QT 5软件包:
apt-get install libqt5sql5-mysql
Removing and installing libmysqlclient-dev
删除并安装
libmysqlclient-dev
$ sudo apt-get purge libmysqlclient-dev
$ sudo apt-get install libmysqlclient-dev
Tried creating symlink as shown below: 尝试创建符号链接 ,如下所示:
#locate libmysqlclient file
$ locate libmysqlclient
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.3.2
/usr/share/doc/libmysqlclient20
/usr/share/doc/libmysqlclient20/NEWS.Debian.gz
/usr/share/doc/libmysqlclient20/changelog.Debian.gz
/usr/share/doc/libmysqlclient20/copyright
/var/cache/apt/archives/libmysqlclient20_5.7.15-0ubuntu2_amd64.deb
/var/lib/dpkg/info/libmysqlclient20:amd64.list
/var/lib/dpkg/info/libmysqlclient20:amd64.md5sums
/var/lib/dpkg/info/libmysqlclient20:amd64.shlibs
/var/lib/dpkg/info/libmysqlclient20:amd64.symbols
/var/lib/dpkg/info/libmysqlclient20:amd64.triggers
#cd to the dir, and create link
$ cd /usr/lib/x86_64-linux-gnu
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 libmysqlclient_r.so
this one I just incase 我只是为了防万一
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 libmysqlclient_r.so
Contents of Plugin directory: 插件目录的内容:
ll /opt/qt/QT-5.7/5.7/gcc_64/plugins/sqldrivers/
total 988
drwxrwxr-x 1 cx cx 84 Oct 17 15:58 ./
drwxrwxr-x 1 cx cx 504 Oct 17 15:58 ../
-rwxr-xr-x 1 cx cx 851008 Jun 10 11:10 libqsqlite.so*
-rwxr-xr-x 1 cx cx 75424 Jun 10 11:10 libqsqlmysql.so*
-rwxr-xr-x 1 cx cx 79368 Jun 10 11:10 libqsqlpsql.so*
Project Info: 项目信息:
Added to .pro file: 添加到.pro文件:
QT += sql
Code: 码:
#include <QtSql>
#include <QSqlDriver>
#include <qsqldatabase.h>
#include <QSqlError>
#include <QPluginLoader>
#include <cstdio>
using namespace std;
//some irrelevant project code in between
QString rootPass = getRootPassword();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
// db.setDatabaseName(DBName);
db.setUserName("root");
db.setPassword(rootPass);
if (!db.isValid()){
QSqlError err = db.lastError();
cout << endl << "!DB ERROR: "<< err.text();
cout.flush();
}
//qsqlerror err: unused4 : 21985
//qsqlerror err: unused3 : 2757134240 (2757134240)
if (db.open()){
//do things to database
}
else
{
cout << "error opening database" << endl;
}
In my project, I have tried: 在我的项目中,我尝试过:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
and 和
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL3");
just in case, no luck 以防万一,没有运气
I have also copied the libmysqlclient.so
file to my plugins directory, also did not work (tried this incase of a library path missing,etc.) 我还已经将
libmysqlclient.so
文件复制到我的插件目录,也没有用(在缺少库路径的情况下进行了尝试,等等)。
I have no idea how to continue further, any suggestions would be helpful 我不知道如何继续下去,任何建议都将有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.