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
posted @ 2023-07-14 14:48  sherlock-merlin  阅读(306)  评论(0编辑  收藏  举报