Superset是否支持MySQL 8作为元数据库?如何通过Helm Chart配置?
Superset MySQL 8元数据库配置(官方Helm Chart)
支持情况
Superset完全支持MySQL 8作为元数据库,只需配置正确的连接参数和依赖即可。
配置步骤(无需修改官方Chart文件)
所有配置通过Helm values覆盖实现:
1. 禁用内置PostgreSQL并配置MySQL连接
创建values-custom.yaml,写入以下内容:
# 关闭内置PostgreSQL实例 postgresql: enabled: false # 配置Superset元数据库核心参数 superset: configOverrides: database: | # MySQL 8连接串,替换为你的实际信息 SQLALCHEMY_DATABASE_URI = "mysql+mysqldb://DB_USER:DB_PASS@DB_HOST:3306/DB_NAME?charset=utf8mb4" # 适配MySQL 8认证插件,避免连接失败 SQLALCHEMY_ENGINE_OPTIONS = { "connect_args": {"auth_plugin": "mysql_native_password"} } # 覆盖默认的数据库连接参数(清理PostgreSQL残留配置) supersetNode: connections: db_host: "DB_HOST" db_port: 3306 db_user: "DB_USER" db_pass: "DB_PASS" db_name: "DB_NAME"
将DB_USER、DB_PASS、DB_HOST、DB_NAME替换为你的MySQL实际信息。
2. 移除PostgreSQL相关初始化容器
默认Chart会创建wait-for-postgres类容器,直接覆盖为空即可:
init: initContainers: []
如果需要等待Redis(使用内置Redis的场景),可以保留Redis等待容器:
init: initContainers: - name: wait-for-redis image: busybox:1.28 command: ['sh', '-c', 'until nc -z redis 6379; do echo waiting for redis; sleep 2; done;']
3. 安装MySQL驱动依赖
官方Superset镜像默认不带MySQL驱动,通过初始化脚本安装:
superset: initScripts: install-mysql-deps.sh: | #!/bin/bash set -e apt-get update && apt-get install -y --no-install-recommends python3-dev default-libmysqlclient-dev build-essential pip install mysqlclient mysql-connector-python
4. 执行部署
运行Helm命令完成部署:
helm upgrade --install superset apache/superset -f values-custom.yaml
关键注意事项
- 提前在MySQL 8中创建好指定的元数据库,确保Superset Pod能访问到MySQL实例(检查网络策略、安全组)。
- MySQL 8默认使用
caching_sha2_password认证,若连接报错,要么在连接串中指定auth_plugin=mysql_native_password,要么修改MySQL用户的认证方式为mysql_native_password。
内容的提问来源于stack exchange,提问作者Kevin Li
相关产品推荐
相关产品推荐

