转换MediaWiki的MySQL数据库格式MyISAM-InnoDB及字符集latin1-utf8
来自Jamesqi
James Qi(讨论 | 贡献)2009年6月17日 (三) 13:51的版本 (创建新页面为 '{{日志顶部}} --~~~~ 2006年初最早安装MediaWiki的时候,我们使用的是老版本MySQL,设置的时候是选择的MyISAM格式、Latin1字符集。 …')
--James Qi 2009年6月17日 (三) 13:51 (CST)
2006年初最早安装MediaWiki的时候,我们使用的是老版本MySQL,设置的时候是选择的MyISAM格式、Latin1字符集。
但在2007年后的设置中都是改成了新版本的MySQL,然后使用了InnoDB格式、Utf8字符集。
站点之间基本是独立的,虽然有用Interwiki链接,但数据库格式、字符集没有什么影响。
不过还是存在一个问题,用户数据库采取共享以后,在两种采用不同数据库格式、字符集的网站中查看用户列表,就会发现中文有了乱码。
这个问题一直存在,让同事反复试验进行数据库转换都没有成功。
今天趁着MediaWiki升级的过程,我拿了一个很少数据的站点Wiki.18dao.com:来做实验,可以成功转换,记录如下:
- 新建一个站点,创建一个新的数据库wiki18daocom-new,使用新的InnoDB格式、Uft8字符集;
- 从已经升级好的原来站点的maintenance下进行用php dumpBackup.php --full及php dumpBackup.php --logs导出所有版本数据及每页日志;
- 在新站点maintenance下用php importDump.php导入上面的两个xml文件;
- 在新站点的数据库中手工加入Interwiki数据,注意1.15.0中URL需要用文件上传而不是以前的文本;
- 在新站点maintenance下用php rebuildImages.php --missing扫描恢复上次的文件;
- 仔细全面检查新网站,做必要的调整(例如上传文件的复制等)。
这个办法有些麻烦,但好歹算是可以基本完成这个转换。
标签:MediaWiki、MySQL、MyISAM、InnoDB、Latin1、Utf8。 |
相关内容:
|