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.*的文件,有两个,拷贝到其他目录做备份。

Metabase将默认H2数据库导入Mysql采坑过程(Centos7)_第1张图片

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

Metabase将默认H2数据库导入Mysql采坑过程(Centos7)_第2张图片

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

Metabase将默认H2数据库导入Mysql采坑过程(Centos7)_第3张图片

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

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

Metabase将默认H2数据库导入Mysql采坑过程(Centos7)_第4张图片

你可能感兴趣的:(Metabase,Metabase,数据库迁移)