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

