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");
