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/metabase
  • Jar包部署

    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
    # 未完待续!