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部署
1
docker run --name metabase -p 3000:3000 -d metabase/metabase:v0.48.3
Jar包部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 环境变量配置
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部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 部署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/metabaseJar包部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17# 环境变量配置
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部署条件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45# 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
1
# 未完待续!