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