Centos7部署MetaBase-v0.48.3
MetaBase_v0.48.3下载地址 : http://downloads.metabase.com/v0.48.3/metabase.jar
JDK11 下载地址:https://repo.huaweicloud.com/java/jdk/11.0.1+13/jdk-11.0.1_linux-x64_bin.tar.gz
1.不修改源数据库的方式
官方提示此方式仅用于测试学习使用,如用生产交付需修改源数据库为其他托管数据库或自建数据库
-
docker部署
docker run --name metabase -p 3000:3000 -d metabase/metabase:v0.48.3
-
Jar包部署
# 环境变量配置 vim /etc/profile 或 vim ~/.bash_rc# Java11 export JAVA_HOME=/usr/local/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:${PATH} export PATH=/usr/local/node/bin:${PATH}# 加载环境变量 source /etc/profile 或 source ~/.bash_rc# 运行 java -jar metabase.jar # 默认端口为3000,等待片刻即可访问
2.修改源数据库为MySQL
官方文档注明:v0.48版本建议的版本为MySQL8.0.33。
MySQL5.7版本尝试部署,但在初始化的时候会出现[1064]SQL语法错误,详细SQL问题是反引号的问题。
-
docker部署
# 部署MySQL8.0.33 docker run --name mysql8 \ -v /opt/metabase_db/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=Metabase@2024! \ -p 3306:3306 -d \ mysql:8.0.33# 部署MetaBase 【MySQL变量参数按需修改】 docker run --name metabase \ -p 3000:3000 \ -e "MB_DB_TYPE=mysql" \ -e "MB_DB_DBNAME=metabase" \ -e "MB_DB_PORT=3306" \ -e "MB_DB_USER=root" \ -e "MB_DB_PASS=Metabase@2024!" \ -e "MB_DB_HOST=127.0.0.1" -d \ metabase/metabase
-
Jar包部署
# 环境变量配置 vim /etc/profile 或 vim ~/.bash_rc# MetaBase DB export MB_DB_TYPE=mysql export MB_DB_DBNAME=metabase export MB_DB_PORT=3306 export MB_DB_USER=root export MB_DB_PASS='Metabase@2024!' export MB_DB_HOST=127.0.0.1 #export MB_JETTY_PORT=3001 #如需修改MetaBase端口请修改此处# 加载环境变量 source /etc/profile 或 source ~/.bash_rc# 运行 java -jar metabase.jar # 默认端口为3000,等待片刻即可访问
3.从默认源数据库H2迁移至MySQL
-
从docker部署的Metabase H2数据库迁移至MySQL
假设所在服务器均支持jar包部署及docker部署条件
# MetaBase容器里存储jar的目录 /app/metabase.jar # MetaBase容器里H2数据库的目录 /metabase.db/metabase.db.mv.db# 1.先将MetaBase容器里的DB复制到宿主机上/usr/local/metabase目录,假设此目录存在。 docker cp metabase:/metabase.db/metabase.db.mv.db /usr/local/metabase# 2.准备一台可连接的MySQL8的实例或MySQL容器# 2.1本文采用宿主机MySQL容器 docker run --name mysql8 \ -v /opt/metabase_db/mysql:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=Metabase@2024! \ -p 3306:3306 -d \ mysql:8.0.33# 2.2将MetaBase所需DB参数写入宿主机环境变量 vim /etc/profile 或 vim ~/.bash_rc# MetaBase DB export MB_DB_TYPE=mysql export MB_DB_DBNAME=metabase export MB_DB_PORT=3306 export MB_DB_USER=root export MB_DB_PASS='Metabase@2024!' export MB_DB_HOST=127.0.0.1# 2.3 提前创建MetaBase所需库并指定字符集 数据库名称:metabase 字符集:utf8mb4 排序规则:utf8mb4_unicode_ci # 这一步非常重要,如果设置错误,metabase初始化创建表时会报错。 # SQL创建 【有可视化工具的可用工具创建】 create database metabase default character set utf8mb4 collate utf8mb4_unicode_ci;# 3.准备与MetaBase容器同版本的MetaBase jar包,存放在宿主机/usr/local/metabase目录中 # 3.1这一步可将容器内的jar包复制出来 docker cp metabase:/app/metabase.jar /usr/local/metabase# 4.在宿主机执行MetaBase初始化,此步骤会将MetaBase所需表写入MySQL中 java -jar /usr/local/metabase/metabase.jar # 等待片刻,如果无报错即初始化成功# 5.从H2数据库中迁移至MySQL java -jar /usr/local/metabase/metabase.jar load-from-h2 /usr/local/metabase/metabase.db # 迁移时无需.mv.db后缀 # 等待片刻,无报错即可重新访问web地址,不出意外的话原来的账号密码都可正常访
-
从Jar包部署的Metabase H2数据库迁移至MySQL
# 未完待续!