Archive for the '未分类' Category

论坛数据恢复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 ».

Qt中的qreal, float还是double ?

最近在别人的基础上开发Qt/MIPS代码的时候碰到一个离奇的错误,说是下面这个符号找不到
_ZN4QPenC1ERK6QBrushfN2Qt8PenStyleENS3_11PenCapStyleENS3_12PenJoinStyleE,利用c++filt工具一看就是QPen::QPen(QBrush const&, float, Qt::PenStyle, Qt::PenCapStyle, Qt::PenJoinStyle),到帮助系统查了一下,第二个参数是qreal。
现在问题就来了qreal到底是float还是double呢。
我到qglobal.h去看源代码,如果是QT_ARCH_MIPS宏存在的情况下就应该是”typedef qreal float” 啊,不知道前面那个仁兄怎么编译出来的这个函数是_ZN4QPenC2ERK6QBrushdN2Qt8PenStyleENS3_11PenCapStyleENS3_12PenJoinStyleE呢,也就是QPen::QPen(QBrush const&, double, Qt::PenStyle, Qt::PenCapStyle, Qt::PenJoinStyle) ,而且也是MIPS的代码
很费解,很费解  ~ 抓了他们的configure脚本过来才发现问题所在,他们的选项里有下面这样的
/configure -embedded  -xplatform qws/linux-mips-g++
-embedded里没带选项,所以不会产生QT_ARCH_MIPS的宏~~ 透心凉
其实 -arch mips可以代替前面两个选项的组合。

Read More...

Tags: , ,
Posted on December 27th, 2009 in Linux技术, Qt技术, 未分类 | 1 Comment ».