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”;