`
fuhao_987
  • 浏览: 63650 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

关于搭建wiki镜像和数据库的一些东西

    博客分类:
  • Java
阅读更多
1:搭建wiki镜像
(1)Apache,Php5,Mysql不可少,然后下载mediawiki软件。
(2)mediawiki直接解压到apache里面,然后进主页去创建数据库wikidb。里面有41个表。在导入数据之间,要先清除page,revision,text三个表。
delete from page;
delete from revision;
delete from text;
(3)http://dumps.wikimedia.org/backup-index.html在这里可以下载任何语言wiki的数据库xml文件。下载的文件类似于enwiki-20061130-pages-articles.xml.bz2(英文版的),wiki差不多每两个月更新一次数据。
(4)把文件导入数据库:
命令:
java -Xmx600M -server -jar mwdumper.jar --format=sql:1.5
enwiki-20061130-pages-articles.xml.bz2 | mysql -u wikiuser -p wikidb
这是linux下的,windows下的对应改一下路径,当然啦,需要mwdumper.jar包
可以在http://dumps.wikimedia.org/tools/ 下载
说明:1.这个xml压缩文件只有最新版本的文件。如果要所有的历史记录应该是类似这样的文件:
             enwiki-20061130-pages-meta-history.xml.bz2
           2.windows下的命令:
              java -jar d:\mwdumper.jar --format=sql:1.5 d:\enwiki-20061130-pages-meta-history.xml.bz2 | c:\mysql\bin\mysql.exe -u root(数据库登录者) -p wikidb(用mediawiki建立的后台数据库名字)


(5)现在,实际上wikidb里面只有三个表有内容,page,revision,text。对于只研究wiki文本已经足够了,本来想画个图简单说明一下这三个表的关系,可是在网上看到了一个关于41表的完整版,连接:http://dl.javaeye.com/upload/attachment/80112/8621bbc1-1ffa-3511-8023-acbe735ac39f.png
当时不知道有这图,分析了半天才搞明白这三个表的关系,总之就是revision表的rev_page对应page表的page_id,revision表的rev_id对应text表的old_id
好啦,现在wiki的镜像搭建好了,可以按自己的要求读取里面的数据啦。
我用的是python2.6
--------------------------------------------------------------------
下面是关于python处理数据库的内容:
需要装MySQLdb
MySQLdb版本: MySQL-python-1.2.2.win32-py2.6.exe
下载地址:http://home.netimperia.com/files/misc/MySQL-python-1.2.2.win32-py2.6.exe
参见:http://sourceforge.net/forum/forum.php?thread_id=2316047&forum_id=70460

常见问题:
1.ImportError: DLL load failed: 找不到指定的模块。
----------------------------------------------------------------------------------------------------
D:\usr\local\Python26>python
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\usr\local\Python26\Lib\site-packages\MySQLdb\__init__.py", line 19, in <module>

    import _mysql
ImportError: DLL load failed: 找不到指定的模块。
----------------------------------------------------------------------------------------------------
解决方法:下载libmmd.dll和libguide40.dll两个dll文件并复制System32目录之下
参见:http://sourceforge.net/forum/message.php?msg_id=5613887

2.ImportError: DLL load failed: 找不到指定的模块。
----------------------------------------------------------------------------------------------------
D:\usr\local\Python26>python
Python 2.6 (r26:66721, Oct  2 2008, 11:35:03) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
D:\usr\local\Python26\lib\site-packages\MySQLdb\__init__.py:34: DeprecationWarning: the sets module is deprecated
  from sets import ImmutableSet
----------------------------------------------------------------------------------------------------
解决方法:
1) 在文件中 "__init__", 注释掉:
from sets import ImmutableSet 
class DBAPISet(ImmutableSet): 
新增:
class DBAPISet(frozenset)

2) 在文件中"converters.py", 注释掉  from sets import BaseSet, Set 这一句话。

3) 在文件中"converters.py", 修改 "Set" 成为 "set" ( 只有两个地方需要修改):
大概 line 48: return Set([ i for i in s.split(',') if i ]) 》》 return set([ i for i in s.split(',') if i ])
大概 line 128: Set: Set2Str, 》》 set: Set2Str
参见:http://sourceforge.net/forum/message.php?msg_id=5808948
------------------------------------------------------------------------------------------
好啦好啦,然后就是运用MySQLdb包连数据库wikidb,然后用sql语句自己想要的数据,我把读取的数据用python包装成xml。
分享到:
评论

相关推荐

    RedHat 5搭建wiki.docx

    在Red Hat 5操作系统上搭建wiki环境,主要是为了创建一个信息共享和交流的平台。这个过程涉及到多个步骤,包括Linux基础、LAMP(Linux + Apache + MySQL + PHP)环境的搭建,以及MediaWiki的安装和配置。以下是详细...

    Gogs极易搭建的自助 Git 服务器代码.rar

    - 支持迁移和镜像仓库以及它的 Wiki - 支持在线编辑仓库文件和 Wiki - 支持自定义源的 Gravatar 和 Federated Avatar - 支持 Jupyter Notebook - 支持两步验证登录 - 支持邮件服务 - 支持后台管理面板 - 支持 MySQL...

    windows下Node.js开发环境 搭建

    ### Windows 下 Node.js 开发环境搭建详述 ...至此,一个完整的Windows下的Node.js开发环境已经搭建完毕,包含了开发工具、数据库服务以及文件传输工具等所有必需组件,为开发者提供了一个高效、稳定的开发环境。

    Kodexplorer可道云 v4.51.zip

    5. **文档**:可能有README文件或Wiki页面,提供了关于如何安装、配置、使用和贡献到该项目的信息。 6. **测试文件**:单元测试、集成测试代码,用于确保软件功能的正确性。 7. **许可证文件**:如LICENSE,明确了...

    依瞳人工智能平台旨在为不同行业的用户提供基于深度学习的端到端解决方案

    支持项目,场景化管理算法模型开发新增模型工厂,便于转换,蒸馏,迁移,版本,类型管理和共享升级UI,更好的使用体验支持镜像中心docker.io等公开镜像可以直接拉取使用支持图像数据标注支持用户资源配额支持组织...

    Gogs轻量级git服务-其他

    支持活动时间线支持SSH以及HTTP/HTTPS协议支持SMTP、LDAP和反向代理的用户...镜像仓库以及它的Wiki支持在线编辑仓库文件和Wiki支持自定义源的Gravatar和Federated Avatar支持Jupyter Notebook支持邮件服务支持后台管理...

    【java框架】SpringBoot2(1) -- SpringBoot2入门及基础配置(csdn)————程序..pdf

    然后,你可以按照以下步骤进行项目配置和搭建: - **配置Maven**:在`conf/settings.xml`中设置阿里云的Maven镜像,以提高依赖下载速度。同时,在`profiles`配置中指定JDK1.8,确保编译环境正确。 - **使用Spring ...

    redmine:Redmine是使用Ruby on Rails框架编写的灵活的项目管理Web应用程序。 http:github.comedavis10redmine是svn存储库的官方git镜像

    4. **文档管理**:内置的wiki功能使得项目成员可以共享和编辑文档,促进知识共享。 5. **版本控制集成**:Redmine支持与各种版本控制系统集成,如Subversion(SVN)、Git等,用户可以直接在Redmine中浏览和提交代码...

    vagrant box 实用操作

    ### Vagrant Box 实用操作详解 #### 一、Vagrant Box 概述 Vagrant 是一个用于构建和管理虚拟化开发...以上就是关于 Vagrant Box 的实用操作指南,希望能帮助您更好地理解和使用 Vagrant Box 来搭建和管理开发环境。

    git-lab

    10. **内置 Wiki**:每个项目都可以有自己的 Wiki 页面,用于记录文档和指南,方便团队成员共享知识。 11. **内置 Chat**:GitLab 也提供了一个内置的聊天工具,名为 Mattermost,允许团队成员进行实时交流。 `git...

Global site tag (gtag.js) - Google Analytics