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