linux下qt5.5 连接mysql数据库详细步骤

来源:互联网 发布:js strict 编辑:程序博客网 时间:2024/06/14 14:25

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


原创粉丝点击