Metabase将默认H2数据库导入Mysql采坑过程(Centos7)

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

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

 Centos7中的配置工作:

 1、停止Metabase服务

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

2、备份H2数据库。

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

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

vi /etc/profile

export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase数据库
export MB_DB_PORT=mysql端口
export MB_DB_USER=mysql用户
export MB_DB_PASS=mysql密码
export MB_DB_HOST=mysql机器ip

然后使profile生效

source /etc/profile

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

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

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

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

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

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同步过来的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值