本文介紹部署在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的配置資訊
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同步過來的結果。