manjaro QT连接 MySql 问题

在manjaro上使用QT连接MySql数据库的时候,遇到了一些问题,在这里纪录一下:

第一个问题:undefine reference to QSqlDatabase::database(QString const&,bool)
解决方案: 在项目文件  .pro 中添加如下即可:
QT += sql
第二个问题:显示拥有可用的QMYSQL驱动,但是无法加载,报错如下:

QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

进入文件QT安装目录,使用ldd命令查看依赖:

cd /opt/QT/5.9.6/gcc_64/plugins/sqldrivers
ldd libqsqlmysql.so

如下图所示,显示 libmysqlclient.so.18 not found 解决方案:

sudo wget -O /usr/lib/libmysqlclient.so.18 http://files.directadmin.com/services/es_7.0_64/libmysqlclient.so.18

之后重新查看依赖,已经解决

第三个问题:数据库连接失败原因之一:数据库主机名
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    //db.setHostName("localhost");	// 这里行不通的话,改用下面的本机回环地址
    db.setHostName("127.0.0.1");
经验分享 程序员 微信小程序 职场和发展