本文介紹部署在Centos7中的Metabase,把示例H2數據庫數據導入外部mysql數據庫。
這裡centos7為Vmware安裝的虛擬機,mysql位於虛擬機所在的宿主PC(Windows)。
Centos7中的配置工作:
1、停止Metabase服務
<code>Ctrl C 停止以 java -jar metabase.jar 啟動的服務
/<code>
2、備份H2數據庫。
進入metabase的啟動目錄,找到類似metabase.db.*的文件,有兩個,拷貝到其他目錄做備份。
![Metabase將默認H2數據庫導入Mysql採坑過程(Centos7)](http://p2.ttnews.xyz/loading.gif)
3、在profile中添加要導入mysql的配置信息
<code>source /etc/profile/<code>
此時,請保證 宿主機中已存在如上所示的數據庫
4、在Metabase的jar文件所在目錄,執行以下命令,進行遷移操作。
<code>java -jar metabase.jar load-from-h2 ./metabase.db/<code>
![Metabase將默認H2數據庫導入Mysql採坑過程(Centos7)](http://p2.ttnews.xyz/loading.gif)
看到如下結果,證明操作成功、
這裡介紹以下可能出現的異常情況
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同步過來的結果。
閱讀更多 工科男的執著 的文章