Posts Tagged ‘mysql’

Qt MySQL数据库编程

今天在Linux下测试了Mysql数据库与Qt结合的应用练习,Qt经常要与数据库打交道,如Oracle(甲骨文公司数据库巨人)、 SQL(中大型数据库)、mySQL(小型关系型数据库管理系统)、Access(小到办公软件的office数据库access)。经常使用的客户端数 据库驱动有ODBC、MySQL、SQLite等。现在重点介绍MySQL,默认的情况是没有安装MySQL的驱动的,只用一个SQLite嵌入式数据库 可以编写以下代码显示数据库驱动。
#include <QApplication>
#include <QDebug>
#include <QtSql>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
qDebug()<<”Available drivers:”; //输出有效的数据库驱动
QStringList drivers = QSqlDatabase::drivers(); //用字符列表的形式将SQL数据库设备驱动列出来
foreach(QString drivers,drivers); //foreach语句为数组或对象集合中的每个元素重复一个嵌入语句组,foreach语句用于循环访问集合以获取所需信息。
qDebug()<<”\t”<<drivers;
return app.exec();
}
QtSql是数据库类的集合,要使用到因此要添加模块头文件#include ,创建工程文件时也要选中Sql库,或在*.pro中的编译入口input下方添加QT += sql
QMYSQL和QMYSQL3先前是没有的,编译安装QMYSQL驱动后就有,怎么安装?

Read More...

Tags: ,
Posted on July 2nd, 2010 in Linux技术, Qt技术 | 6 Comments ».

论坛数据恢复Memo

虽然是个非Qt话题,也忍不住要在blog里Memo一下,没准儿啥时候就有人用上了。
众所周知,我们的论坛在不久以前遭遇了杯具,在不知情的情况下一下子就关了。 现在摆在我们面前的当务之急是尽快把原来的站点恢复起来。 要恢复论坛,需要做两方面的工作。 一是论坛本身软件的恢复,二是数据的恢复。
软件恢复比较容易,按照原来的安装方法安装一遍就行了。 (还有可能和我们一样杯具的,连自己装的什么软件什么版本都不知道, 那就得多花点时间自己琢磨琢磨研究研究。) 另外恢复软件和恢复数据是一脉相承不可分割的部分, 熟悉论坛软件的人都知道,论坛在安装过程中需要配置数据库相关的信息。 所以我们按照论坛软件时要结合对数据库的了解填写配置内容。
在论坛up和running的状态下,做数据导出导入是很容易的, 基本上都是有现成的工具可用。但由于论坛关闭事出突然,没来得及做数据备份, 所以我们只拿到了整个mysql数据库的原始备份。
原始备份数据最简单的导入方法是直接cp到mysql的数据库data文件里, 在数据库类型和版本兼容的情况下这是非常直接有效的方式。 但。。我们的情况下这样的方式不可用,因为:
-如果先cp数据库再安装论坛软件,论坛软件安装时会报数据库重复,需要删除已有的数据库 — 失败
- 如果先装论坛软件再cp数据,这样是可以的, 但需要把mysql server临时关闭一下才能将数据库数据完全替换 — 我们用的server也不允许这样做, 失败
所以这个取巧的方法就用不成了。
根据第二种方法的理论, 我们可以在本地建一个类似的论坛环境,然后导出数据库的内容再在server上导入。笔者用来建环境的软件是xamapp, 非常简单好用, 也不难配置,这里就不多说了;论坛软件用的是Discuz, 它的主页上有详细的安装指南 。 下面简单列列步骤:
- 安装xamapp (apache,mysql server集成)
- 将备份数据cp到mysql的data目录,重起mysql server就能看到这个数据库了
- 用数据库查看的工具看备份的数据库的内容,主要记录论坛数据表的前缀标记和UCenter表的标记; 笔者使用的工具是Qt自带的demo中的sqlbrowser例子。(到这里终于和Qt沾上边了。)
- 安装UCenter (Discuz的一个组件)
- 安装Discuz, 配置的时候注意和UCenter填写同一个数据库名。 数据表前缀与我们的备份数据库一致
这样我们就有了一个空的论坛和空的数据库。
- 停止mysql server服务, 将备份数据库的内容cp到新建的数据库,完全覆盖
- 重新启动mysql server, 刷新论坛就能看到备份的数据了。
这时你在本地就重建了一个和原来网络上的论坛相同的环境, 所以可以用mysql的工具(phpmyadmin)导出这个数据库的内容到server上导入, 或者用论坛本身的工具做论坛数据的导出, 应该就比较容易了。
除了数据恢复, 还有论坛附件也需要恢复。 这一步很简单,把论坛备份的attachments目录上载到相应的目录即可。
说说听听感觉很容易,不过笔者的试验过程却是充满了艰辛啊, 谁让咱对mysql和Discuz都一窍不通呢~~~ 特此Memo以儆效尤!

Read More...

Tags: , ,
Posted on January 20th, 2010 in 未分类 | 1 Comment ».