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

在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();
       }
}

 

 
 
 
 
 
 
posted @ 2015-11-03 23:33  gebilaowang  阅读(623)  评论(0编辑  收藏  举报