1. 程式人生 > >linux下qt5.5 連線mysql資料庫詳細步驟

linux下qt5.5 連線mysql資料庫詳細步驟

1. .pro 檔案包含 sql,標頭檔案包含 #include <QtSql> , private中構建QSqlDatabase db;

2. cpp中函式:

void MainWindow::showDatabaseDate()
{
    this->db=QSqlDatabase::addDatabase("QMYSQL");
    this->db.setHostName("localhost");
    this->db.setUserName("rot");
    this->db.setPassword("xxxx");
    this->db.setDatabaseName("student");

    bool ok=db.open();
    if(ok)
    {
        qDebug()<<"open success";
    }else
    {
        qDebug()<<"open error because"<<this->db.lastError();
    }
}

3. 執行提示沒有安裝驅動,

需要自己編譯驅動,替代$DIR//plugins/sqldrivers/libqsql/中的libqsqlmysql.so檔案,參考

http://www.jb51.net/LINUXjishu/211594.html

http://blog.csdn.net/makuiyu/article/details/7014237

http://www.cnblogs.com/ittinybird/p/4604416.html

其中缺少到庫,先尋找尋找有沒有,有則建立連結即可。缺少libmysqlclient_r.so

命令find / -name libmysqlclient*  在根目錄下查詢,找到相應的.so檔案後建立軟連結即可 ln -s。

4. 在qtbase/src/plugins/sqldrivers/mysql/ 下qmake,make

生成libqsqlmysql.so,替換$DIR//plugins/sqldrivers/libqsql/中的libqsqlmysql.so檔案

5. 出現

open error because QSqlError("2002", "QMYSQL: Unable to connect", "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

解決方法:

http://www.cnblogs.com/Lam7/p/6090989.html

將連線引數“host”的值由“localhost”改成“127.0.0.1”;