docker安裝的metabase存儲從h2改成mysql

在mysql創建好數據庫和相關用戶,並授權

CREATE DATABASE metabase;
CREATE USER metabase@'172.17.0.0/24' IDENTIFIED BY '123456';
GRANT USAGE ON metabase.* TO 'metabase@'172.17.0.0/24';
FLUSH PRIVILEGES;

 

看一下舊metabase容器的啓動參數,history | grep metabase

docker run -d -p 3000:3000 -v /data/metabase-data:/metabase-data -e "MB_DB_FILE=/metabase-data/metabase.db" --name metabase metabase/metabase

 

我們需要備份的h2文件在容器裏的完整路徑爲/metabase.db/metabase.db.mv.db,備份一下到物理機。

docker cp metabase:/metabase.db/metabase.db.mv.db /data/backup/metabase.db.mv.db

 

停止、刪除舊metabase容器,如果擔心有問題的話,不停止刪除metabase容器,新建的metabase容器綁定別的端口、命名也不和舊容器同名

docker stop metabase
docker rm metabase
docker run -d -p 3000:3000 --restart unless-stopped -e "MB_DB_TYPE=mysql" -e "MB_DB_DBNAME=metabase" -e "MB_DB_PORT=3306" -e "MB_DB_USER=metabase" -e "MB_DB_PASS=123456" -e "MB_DB_HOST=172.17.0.1" --name metabase  metabase/metabase

 

創建好新的容器後,將備份的metabase.db.mv.db文件導入到新容器中,在容器裏面操作導入數據

docker cp /data/backup/metabase.db.mv.db /tmp/
docker exec -it metabase /bin/bash
java -jar /app/metabase.jar load-from-h2 /tmp/metabase.db
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章