解决:confluence 5.9.4 一次性恢复30个插件

背景

confluence A中安装了30个插件。从confluence B中需要安装这个30个插件(注:A与B的confluence版本相同)。当然,我知道,可以从插件商店中一个个手动安装,平均一个插件只需要3分钟,那30个插件可能只需要1.5小时。但是,有没有更快速的解决方案呢?有的

解决方案

confluence将插件以二进制数据存在表PLUGINDATA中。我们可以根据这个原理,使用数据库恢复的方式,一次性安装30个插件。

首先从confluenceA的数据库中dump表PLUGINDATA。执行MySQL命令

mysqldump  -u username   -ppassword docsnewdb PLUGINDATA >final_plugin.sql

然后倒入confluenceB的数据库中,执行MySQL命令

mysql> source ~/final_plugin.sql

在导入数据库时,由于PLUGINDATA表的字段DATA的size太大了,有的8M左右,导入失败。需要修改/etc/my.cnf文件

max_allowed_packet = 10M  //主要是扩大这个属性
character-set-server=utf8
collation-server=utf8_bin

导入成功之后,重启confluence。

方案很简单吧。但是这里会有一个问题。因为confluenceA的数据库编码是utf8,但是它的collation 是缺省的。但是confluenceB的数据库编码是utf8,collation 是utf8-bin。虽然导入confluenceB成功了。但是启动confluence B时会报错,报错的信息大概意思是confluence中存在collation 缺省的表。

所以修改final_plugin.sql文件如下所示:

解决:confluence 5.9.4 一次性恢复30个插件_第1张图片
image.png

如果你的confluenceA和confluenceB的编码完全一致,这个问题可以忽略。

一次性卸载插件方法

同理,卸载30个插件不用手动一个个卸载。只需要做以下几步就可以了。

  • 清空以下四个文件的文件
The /bundled-plugins folder
The /plugin-cache folder
The /plugins-osgi-cache folder
The /plugins-temp folder
  • 清空表PLUGINDATA
truncate PLUGINDATA

然后重启confluence,所有的插件都卸载了。

参考文献

Confluence Does Not Start with 'Detected tables with non-default character encoding/collation' Message
install plugins from file system

你可能感兴趣的:(解决:confluence 5.9.4 一次性恢复30个插件)