CentOS 6.5 下 QT4 连接 mysql 数据库的步骤
QT4 的安装请参考: CentOS 6.5 下安装 QT 4
mysql 的安装请参考: CentOS 6.5 下安装配置 mysql
1. 预防万一,先安装一下mysql-devel(一定要装!), 不安装的话后面编译会出现找不到-lmysqlclient的问题。如果您参考上面的文档安装 mysql,则 mysql-devel 是安装了的,此步骤可忽略。
2. 开始编译:
a. 进入QT解压文件夹下那个存放mysql驱动源码的目录 [注:是SDK, 非QT creator ]
cd /home/Tian/software/qt-everywhere-opensource-src-4.8.7/src/plugins/sqldrivers/mysql
b. 下面的语句我修改一下了qt助手里的,因为我的mysql库的位置是在/usr/include/mysql,/usr/lib/mysql 中。
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro
或者 [ 注:这一步我出错了很多次,最后到底是那个成功的我也不清楚(表打我),事实上是include和libs
一定要 指定到 MySQL头和库所在的路径 ]
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib64/mysql -lmysqlclient_r" mysql.pro
c. make一下
make
3. 安装
make install //生成, 在上面make那步好像也生成过的了,不过这一步还是要做一下··
4. 完成
你可以在QT安装文件夹下 /usr/local/Trolltech/Qt-4.8.7/plugins/sqldrivers 里找到一个刚生成的 libqsqlmysql.so ,这个就是mysql的驱动。 [ 注:是在安装文件夹下,非解压文件夹下,我在解压文件夹下找了半天没找到,晕死。]
这个是我编译好的 mysql 驱动:点我下载 ,大家可以直接下载解压使用,放到目录 /usr/local/Trolltech/Qt-4.8.7/plugins/sqldrivers 下即可。
5. 测试
打开Qt Creator,新建一个项目(Qt Widgets Application), main.cpp 中的代码如下:
#include "mainwindow.h"
#include <QApplication>
#include <QtGui/QApplication>
#include <QtSql>
#include <QLabel>
#include <QSqlDatabase> bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("");
if (!db.open())
return false;
db.close();
return true;
} int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel* label = new QLabel;
label->setWindowTitle("Qt_MySql");
if (createConnection())
label->setText("connection success...");
else
label->setText("connection failed...");
label->show(); return a.exec();
}
然后在 .pro 文件中添加 sql ,如下图所示:

运行结果如下图所示,则表示数据库连接成功。

这个是我做的一个对数据库增删改查的小例子,大家可以下载参考[ Task源码 ]。
CentOS 6.5 下 QT4 连接 mysql 数据库的步骤的更多相关文章
- CentOS 6.3下Zabbix监控MySQL数据库参数
系统环境:CentOS 6.3 x64 http://www.linuxidc.com/Linux/2012-12/76583.htm mysql: mysql-5.6.10 http://w ...
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- Windows操作系统下远程连接MySQL数据库
用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...
- Java连接MySQL数据库——含步骤和代码
工具:eclipse MySQL5.6 MySQL连接驱动:mysql-connector-java-5.1.27.jar 加载驱动: 1. 在工程目录中创建lib文件夹,将下载好的JDBC放到该文件 ...
- ASP.NET 连接MySQL数据库 详细步骤
ASP.NET默认的数据库是MS SQL Server,微软的数据库产品.事实上,如果不计成本因素的话,Windows Server + IIS + MS SQL Server + ASP.NET是网 ...
- Eclipse通过JDBC连接MySQL数据库的步骤(最原始的几个步骤)
java可以兼容目前市面上所有类型的数据库,主要是因为提供了两个接口,一个用于连接目标数据库,一个用于向数据库中传输SQL命令. Connection接口——连接目标数据库: Statement 接 ...
- Ubuntu12.04下Qt连接MySQL数据库
本文介绍在Ubuntu12.04 (64 bit) 下使用Qt 4.8.2连接MySQL(Ver 14.14 Distrib 5.5.43)数据库. 1.安装 Qt 和 MySQL 若未安装以上软件, ...
- Mac下php连接mysql数据库失败解决办法
通过phpmyadmin连接mysql成功,但是通过php连接数据库失败,执行如下php语句 ? 1 @mysql_connect("localhost","root&q ...
- python3下django连接mysql数据库
1.安装pymysql pip install pymysql 有一点需要注意,有的系统(比如ubuntu16.04)同时安装了python2和python3,而比较新的django需要在python ...
随机推荐
- 关于axios跨域带cookie
axios 设置 withCredentials :true $u = $_SERVER['HTTP_REFERER'];$u = preg_replace('#/$#', '', $u);head ...
- [leetcode-676-Implement Magic Dictionary]
Implement a magic directory with buildDict, and search methods. For the method buildDict, you'll be ...
- python函数中的位置参数、默认参数、关键字参数、可变参数区别
一.位置参数 调用函数时根据函数定义的参数位置来传递参数. #!/usr/bin/env python # coding=utf-8 def print_hello(name, sex): sex_d ...
- 让我们一起来做最漂亮的Android界面吧!
让我们一起来做最漂亮的Android界面吧! AndroidiOS产品设计 摘要:如何为Android设备量身定制以打造出最为完美的应用?这是让诸多开发者很是头疼的问题.不同于iOS,Android设 ...
- Java常用类之String
String 类: 1. java.lang.String 类代表不可变的字符序列: 2. “XXX” 为该类的一个对象: 3. String 类的常用构造方法: ① String(String o ...
- mysql入门 — (1)
使用cd进入到mysql/bin文件夹下面,或者配置完环境之后,直接在cmd中使用mysql,然后回车开启mysql. 登录 为了安全考虑,在这里只设置了本地root用户可以连接上数据库.使用的指令是 ...
- Android中Parcelabel对象的使用和理解
1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...
- iOS单利创建的方法
我们在使用单例的时候有两种方法@synchronized,GCD,往往人们使用@synchronized,但是推荐使用GCD: 第一种(@synchronized): + (id)sharedInst ...
- TCP系列16—重传—6、基础快速重传(Fast Retransmit)
一.快速重传介绍 按照TCP协议,RTO超时重传是一个非常重要的事件,当RTO超时的时候,TCP会同时通过两种方式非常谨慎的降低发送数据包的速率,一种是基于拥塞控制削减发送窗口的大小,另外一个是通过指 ...
- 3dContactPointAnnotationTool开发日志(六)
一种可行的思路就是枚举一个模型的三角面片,然后判断三角形是否与另一个物体相交即可.为了让效果更好我想只渲染模型的线框. 在网上查了半天好像Unity里都没有自带的方便的渲染线框的方式,我又自己 ...