您的位置:首页 > 编程语言 > Qt开发

在ubuntu下使用Qt5.4连接mysql数据库出现错误

2015-12-16 11:28 771 查看
在ubuntu下使用Qt5.4连接mysql数据库出现错误,







void Widget::loadMySqlDriver()
{
QPluginLoader loader;
// MySQL 驱动插件的路径
//    loader.setFileName("/Users/Biao/Qt5.4.0/5.4/clang_64/plugins/sqldrivers/libqsqlmysql.dylib");
loader.setFileName("/home/caesar/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so");
qDebug() << loader.load();
qDebug() << loader.errorString();
}


运行以上代码后出现提示,





但是查找ubuntu的文件并没有找到版本为16的库,





将libmysqlclient_r.so.18 拷贝一份并 重命名 我们需要的 libmysqlclient_r.so.16 , 放置在 /usr/lib/i386-linux-gnu/ 目录下 ;
再次运行程序,发现连接数据库成功.
如果不成功,将库所在目录添加到环境变量中。

全部代码如下
#include "widget.h"
#include <QPluginLoader>
#include <QDebug>
#include <QSqlDatabase>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlQuery>

Widget::Widget(QWidget *parent)
: QWidget(parent)
{
this->loadMySqlDriver();
this->connect();
}

Widget::~Widget()
{

}

void Widget::loadMySqlDriver() { QPluginLoader loader; // MySQL 驱动插件的路径 // loader.setFileName("/Users/Biao/Qt5.4.0/5.4/clang_64/plugins/sqldrivers/libqsqlmysql.dylib"); loader.setFileName("/home/caesar/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so"); qDebug() << loader.load(); qDebug() << loader.errorString(); }

void Widget::connect()
{
QSqlDatabase db =
QSqlDatabase::addDatabase("QMYSQL", "Connection_Name");

db.setDatabaseName("qt");
db.setHostName("127.0.0.1");
db.setUserName("root");
db.setPassword("root");

if (!db.open()) {
qDebug() << "Connect to MySql error: " << db.lastError().text();
return;
}

QSqlQuery query(db);
query.exec("SELECT * FROM user");

while (query.next()) {
qDebug() << query.value("username").toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: