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)

3、在profile中新增要匯入mysql的配置資訊

source /etc/profile

​​​​此時,請保證 宿主機中已存在如上所示的資料庫

4、在Metabase的jar檔案所在目錄,執行以下命令,進行遷移操作。

​​

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

​​

Metabase將預設H2資料庫匯入Mysql採坑過程(Centos7)

​​看到如下結果,證明操作成功、

Metabase將預設H2資料庫匯入Mysql採坑過程(Centos7)

​​

​​這裡介紹以下可能出現的異常情況

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)

Metabase將預設H2資料庫匯入Mysql採坑過程(Centos7)

​​