本文介绍部署在Centos7中的Metabase,把示例H2数据库数据导入外部mysql数据库。

这里centos7为Vmware安装的虚拟机,mysql位于虚拟机所在的宿主PC(Windows)。

Centos7中的配置工作:

1、停止Metabase服务

Ctrl C  停止以 java -jar metabase.jar 启动的服务

2、备份H2数据库。

进入metabase的启动目录,找到类似metabase.db.*的文件,有两个,拷贝到其他目录做备份。

c44ac4c116d4d14b0be54f03180f0641.png

3、在profile中添加要导入mysql的配置信息

source /etc/profile

​​​​此时,请保证 宿主机中已存在如上所示的数据库

4、在Metabase的jar文件所在目录,执行以下命令,进行迁移操作。

​​

java -jar metabase.jar load-from-h2 ./metabase.db

​​

18f2d3a69630c6eeb266a28679571ce3.png

​​看到如下结果,证明操作成功、

d31606864178ab10b2253a537effa10c.png

​​

​​这里介绍以下可能出现的异常情况

S1:Command failed with exception: Timed out after 5.0 s

这个问题,前提情况是,linux防火墙是否关闭,firewall-cmd --state 查看;宿主机防火墙是否有mysql所使用的的端口的入栈规则;

如以上问题,都不存在,那么,请确认profile中内容无误后,Source /etc/profile 并重启linux后,重试迁移操作。

S2:Command failed with exception: Could not connect to address=(host=192.168.3.6)(port=3306)(type=master)

个人理解,这个提示的存在,基本是由于profile中的配置信息有误,或者未使profile文件生效,也是我早期研究中常发生的错误。

成功结果贴图

Navicat 连接mysql,查看metabase数据库中的表,同步前,metabase数据库中没有任何表,同步成功后,所显示都是从H2同步过来的结果。

​​

e473428f6e6832d6f1da7fa34829c5da.png
81c26a7cc28f2db54e1004ba81318be5.gif

​​

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐