在 Superset Docker 容器中安裝 MySQL 驅(qū)動的方法
Docker 部署方式(Docker run 和 Docker Compose)下,MySQL 驅(qū)動的完整安裝流程,同時兼顧 Apache Doris
驅(qū)動安裝(適配多數(shù)據(jù)源需求),并提供數(shù)據(jù)庫配置方法和常見注意事項
Apache Superset 是一款功能強(qiáng)大的開源數(shù)據(jù)挖掘與可視化平臺,支持多種數(shù)據(jù)源連接、自定義儀表盤和細(xì)粒度權(quán)限控制,廣泛應(yīng)用于數(shù)據(jù)運(yùn)維與分析場景。由于
Superset 官方 Docker 鏡像未默認(rèn)集成 MySQL 驅(qū)動,在實際運(yùn)維中,需手動安裝驅(qū)動才能實現(xiàn)與 MySQL 數(shù)據(jù)庫的正常連接。本文將詳細(xì)介紹兩種
Docker 部署方式(Docker run 和 Docker Compose)下,MySQL 驅(qū)動的完整安裝流程,同時兼顧 Apache Doris
驅(qū)動安裝(適配多數(shù)據(jù)源需求),并提供數(shù)據(jù)庫配置方法和常見注意事項。
一、前置說明
可能是因為MySQL是使用的GPL協(xié)議,所以Superset官方鏡像中未包含MySQL驅(qū)動,需要手動安裝。
二、Docker run 方式安裝
Docker run 方式步驟清晰,適合快速部署單個 Superset 容器,無需復(fù)雜配置,具體操作如下:
2.1 拉取并啟動 Superset 容器
執(zhí)行以下命令,拉取官方鏡像并啟動容器,映射端口、配置時區(qū)和安全密鑰,確保容器后臺穩(wěn)定運(yùn)行:
# 拉取并運(yùn)行Superset的Docker鏡像 docker run -d \ --name superset \ --restart always \ -p 8088:8088 \ -e TZ=Asia/Shanghai \ -e SUPERSET_SECRET_KEY=*Abcd123456 \ --user root \ apache/superset:latest
2.2 進(jìn)入容器并安裝依賴與驅(qū)動
這一步很關(guān)鍵,因為Superset是運(yùn)行在 Python 虛擬環(huán)境中的,所以,需要在Python 虛擬環(huán)境安裝依賴與驅(qū)動,否則,驅(qū)動的安裝將會不成功。
容器啟動后,進(jìn)入容器內(nèi)部,替換 apt 源為阿里云鏡像(提升下載速度),安裝編譯依賴,再安裝 MySQL 和 Doris 驅(qū)動:
# 進(jìn)入Superset容器 docker exec -it superset bash # 替換apt源為阿里云鏡像源 sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources apt-get update # 安裝編譯pydoris和pymysql所需的依賴 apt-get install -y gcc python3-dev default-libmysqlclient-dev pkg-config # 給官方閹割的虛擬環(huán)境 安裝 pip /app/.venv/bin/python -m ensurepip # 升級 pip /app/.venv/bin/python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/ # 安裝 pymysql 和 pydoris 到 Superset 真正使用的環(huán)境里 /app/.venv/bin/python -m pip install pymysql pydoris -i https://mirrors.aliyun.com/pypi/simple/ # 驗證安裝 /app/.venv/bin/pip list | grep pydoris
驗證成功后,會顯示 pydoris 1.1.0(版本可能略有差異,不影響使用),說明驅(qū)動已正確安裝到 Superset 運(yùn)行環(huán)境中。
2.3 初始化 Superset 并重啟容器
驅(qū)動安裝完成后,需執(zhí)行數(shù)據(jù)庫遷移、創(chuàng)建管理員賬戶、初始化角色等操作,確保 Superset 正常使用,最后重啟容器使配置生效:
# 將本地數(shù)據(jù)庫遷移到最新版本
docker exec -it superset superset db upgrade
# 設(shè)置本地superset系統(tǒng)管理員賬戶
docker exec -it superset superset fab create-admin \
--username admin \
--password admin \
--firstname Superset \
--lastname Admin \
--email admin@superset.com
# 初始化設(shè)置角色
docker exec -it superset superset init
# 重啟Superset容器
docker restart superset2.4 訪問驗證
容器重啟后,通過以下地址訪問 Superset 控制臺:
訪問地址:http://localhost:8088/login/
登錄賬號:admin/admin(默認(rèn)管理員賬戶,生產(chǎn)環(huán)境建議及時修改密碼)
三、Docker Compose 方式安裝(適合生產(chǎn)環(huán)境部署)
Docker Compose 可實現(xiàn)容器的批量管理和配置持久化,適合生產(chǎn)環(huán)境部署,無需手動執(zhí)行多步命令,一鍵完成部署和驅(qū)動安裝,具體配置如下:
networks:
app-tier:
driver: bridge
services:
superset:
image: apache/superset:latest
container_name: superset
hostname: superset
restart: always
user: root
ports:
- "8088:8088" # 端口映射,宿主機(jī)8088端口對應(yīng)容器8088端口
networks:
- app-tier
environment:
TZ: Asia/Shanghai # 配置時區(qū)為上海,避免時間顯示異常
SUPERSET_SECRET_KEY: "*Abcd123456" # 安全密鑰,生產(chǎn)環(huán)境建議修改為復(fù)雜密鑰
SUPERSET_ENV: production # 生產(chǎn)環(huán)境模式
volumes:
- ./superset_data:/app/data # 數(shù)據(jù)持久化,避免容器刪除后數(shù)據(jù)丟失
command: >
bash -c "
apt-get update &&
apt-get install -y gcc python3-dev default-libmysqlclient-dev pkg-config &&
/app/.venv/bin/python -m ensurepip &&
/app/.venv/bin/python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/ &&
/app/.venv/bin/python -m pip install pymysql pydoris -i https://mirrors.aliyun.com/pypi/simple/ &&
superset db upgrade &&
superset fab create-admin
--username admin
--password admin
--firstname Admin
--lastname Admin
--email admin@admin.com || true &&
superset init &&
/usr/bin/run-server.sh
"3.1 啟動與驗證
- 將上述配置保存為
docker-compose.yml文件,放在任意目錄下; - 進(jìn)入配置文件所在目錄,執(zhí)行命令
docker-compose up -d,啟動容器并后臺運(yùn)行; - 容器啟動后,可通過
docker logs -f superset查看啟動日志,確認(rèn)無報錯后,訪問 http://localhost:8088,使用admin/admin登錄即可。
說明:|| true 用于避免重復(fù)創(chuàng)建管理員賬戶時報錯,確保腳本可重復(fù)執(zhí)行;數(shù)據(jù)卷 ./superset_data 用于持久化 Superset 數(shù)據(jù),防止容器重啟或刪除后數(shù)據(jù)丟失。
四、數(shù)據(jù)庫配置(MySQL + Doris)
驅(qū)動安裝完成并登錄 Superset 后,需配置數(shù)據(jù)庫連接,才能實現(xiàn)數(shù)據(jù)可視化分析。以下分別介紹 MySQL 和 Apache Doris 的配置方法,操作步驟一致,僅連接字符串不同:
4.1 配置步驟
- 登錄 Superset 控制臺,點擊右上角
Settings→Database Connectors; - 點擊「添加 Database」,在彈出的「Connect a database」彈窗中,選擇對應(yīng)數(shù)據(jù)庫類型(MySQL 或 Apache Doris);
- 在連接信息中填寫 SQLAlchemy URI 連接字符串,點擊「Test Connection」驗證連接無誤后,點擊「Connect」完成配置。
4.2 連接字符串格式
# 使用Doris驅(qū)動(連接Doris數(shù)據(jù)庫,適配內(nèi)表) pydoris://root:@host.docker.internal:9030/internal.gw_uba # 使用MySQL驅(qū)動(連接MySQL數(shù)據(jù)庫) mysql+pymysql://root:@host.docker.internal:9030/gw_uba
參數(shù)說明
host.docker.internal:Docker 容器訪問宿主機(jī)的默認(rèn)地址,若數(shù)據(jù)庫部署在其他服務(wù)器,替換為對應(yīng) IP 地址;9030:默認(rèn)端口(Doris 查詢端口、MySQL 端口,若端口已修改,需對應(yīng)調(diào)整);root:數(shù)據(jù)庫用戶名,根據(jù)實際數(shù)據(jù)庫配置修改;internal:Doris 的 Catalog 名稱,內(nèi)表使用 internal,查詢外表或數(shù)據(jù)湖時需替換為對應(yīng) Catalog 名稱;gw_uba:數(shù)據(jù)庫名稱,替換為實際需要連接的數(shù)據(jù)庫名。
五、注意事項與使用技巧
- 權(quán)限問題:所有操作需以 root 用戶執(zhí)行,否則會出現(xiàn) apt 安裝失敗、虛擬環(huán)境權(quán)限不足等問題;
- 鏡像源問題:若阿里云鏡像源無法訪問,可替換為其他國內(nèi)鏡像源(如清華源),確保依賴和包能正常下載;
- 驅(qū)動安裝驗證:若安裝后無法識別驅(qū)動,可進(jìn)入容器虛擬環(huán)境(
source /app/.venv/bin/activate),執(zhí)行python -c "import pymysql; print('安裝成功')" 驗證驅(qū)動是否被正確識別; - 生產(chǎn)環(huán)境配置:生產(chǎn)環(huán)境中,需修改
SUPERSET_SECRET_KEY為復(fù)雜密鑰,修改管理員默認(rèn)密碼,避免安全風(fēng)險;同時建議使用 VPC 私有連接,避免公網(wǎng)訪問數(shù)據(jù)庫帶來的安全隱患; - 版本兼容:推薦使用 Apache Superset 3.1 及以上版本、Apache Doris 2.0.4 及以上版本,確保 Doris 連接功能正常;
- 常見報錯:若出現(xiàn)「無法加載數(shù)據(jù)庫驅(qū)動程序」報錯,需重新安裝驅(qū)動,確保驅(qū)動安裝到 Superset 虛擬環(huán)境中,而非系統(tǒng)環(huán)境。
六、參考資料
- Doris 官方文檔:Apache Superset 與 Apache Doris 集成指南;
- Superset Connecting to Databases:Superset 數(shù)據(jù)庫連接官方文檔,包含驅(qū)動安裝通用方法。
到此這篇關(guān)于如何在 Superset Docker 容器中安裝 MySQL 驅(qū)動的文章就介紹到這了,更多相關(guān)Superset Docker 安裝 MySQL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker?search?mysql報錯問題分析及解決
- 使用Docker安裝并啟動MySQL從零到實戰(zhàn)的完整指南
- docker-compose安裝MySQL8.0.39全過程
- 在Docker中安裝并運(yùn)行三個MySQL數(shù)據(jù)庫的操作指南
- Apache Superset MCP接入與使用操作方法
- Superset實現(xiàn)動態(tài)SQL查詢功能
- 使用 Apache Superset 可視化 ClickHouse 數(shù)據(jù)的兩種方法
- superset在linux和windows下的安裝和部署詳細(xì)教程
- win10系統(tǒng)下安裝superset的步驟
相關(guān)文章
基于docker 搭建Prometheus+Grafana的過程詳解
這篇文章主要介紹了基于docker 搭建Prometheus+Grafana的過程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03
Docker Desktop啟動后容器自啟動關(guān)閉指南
在使用 Docker Desktop 的時候,有些容器會在每次啟動 Docker Desktop 后自動啟動,但是這個服務(wù)我并不是每次都需要用,所以希望它不要跟隨 Docker Desktop 自動啟動,而是在需要的時候手動啟動,所以本文給大家介紹了Docker Desktop啟動后容器自啟動關(guān)閉方法2026-06-06
Docker構(gòu)建ELK Docker集群日志收集系統(tǒng)
為了在Docker集群中更好的管理查看日志 我們使用Docker 來搭建集群的ELK日志收集系統(tǒng),這篇文章介紹了Docker構(gòu)建ELK Docker集群日志收集系統(tǒng)的相關(guān)資料,需要的朋友可以參考下2016-11-11

