最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Docker實(shí)現(xiàn)MySQL容器中批量導(dǎo)出所有數(shù)據(jù)庫

 更新時(shí)間:2025年12月23日 09:04:23   作者:weixin_46244623  
在使用 Docker 部署 MySQL 的場(chǎng)景中,經(jīng)常會(huì)需要一次性導(dǎo)出容器內(nèi)除系統(tǒng)庫以外的所有數(shù)據(jù)庫,下面小編就和大家介紹一下具體實(shí)現(xiàn)方法,有需要的小伙伴可以了解下

在使用 Docker 部署 MySQL 的場(chǎng)景中,經(jīng)常會(huì)遇到這樣的需求:一次性導(dǎo)出容器內(nèi)除系統(tǒng)庫以外的所有數(shù)據(jù)庫,并分別生成 .sql 文件,用于備份或遷移。

本文介紹一種無需進(jìn)入交互式容器、通過一條 docker exec 命令,在容器內(nèi)生成并執(zhí)行導(dǎo)出腳本的實(shí)現(xiàn)方式。

一、整體思路

實(shí)現(xiàn)流程如下:

  • 通過 docker exec 在 MySQL 容器中執(zhí)行 Bash
  • 動(dòng)態(tài)創(chuàng)建一個(gè)數(shù)據(jù)庫導(dǎo)出腳本 export_dbs.sh
  • 使用 mysql 命令獲取所有數(shù)據(jù)庫列表
  • 過濾掉系統(tǒng)數(shù)據(jù)庫
  • 循環(huán)調(diào)用 mysqldump,將每個(gè)數(shù)據(jù)庫導(dǎo)出為獨(dú)立的 .sql 文件
  • 將導(dǎo)出文件保存到容器內(nèi) /tmp 目錄

二、完整命令示例

docker exec -it mysql-container bash -c "cat << 'EOF' > /tmp/export_dbs.sh
#!/bin/bash

PASSWORD=\"root\"

mysql -uroot -p\${PASSWORD} --socket=/var/run/mysqld/mysqld.sock -e \"SHOW DATABASES;\" | \
  grep -v \"Database\" | \
  grep -v \"information_schema\" | \
  grep -v \"mysql\" | \
  grep -v \"performance_schema\" | \
  grep -v \"sys\" | \
  while read db; do
    echo \"Exporting database: \$db\"
    mysqldump -uroot -p\${PASSWORD} \
      --socket=/var/run/mysqld/mysqld.sock \
      --databases \"\$db\" > \"/tmp/\$db.sql\"
  done

echo \"Export completed.\"
EOF

chmod +x /tmp/export_dbs.sh
/tmp/export_dbs.sh"

三、關(guān)鍵部分詳解

1. docker exec 執(zhí)行容器內(nèi)命令

docker exec -it mysql-container bash -c "..."
  • mysql-container:MySQL 容器名稱
  • bash -c:在容器中執(zhí)行一段 Bash 命令
  • -it:支持交互與終端輸出

2. 使用 Here Document 生成腳本

cat << 'EOF' > /tmp/export_dbs.sh
  • 使用 Here Document 寫入多行腳本
  • 'EOF' 使用單引號(hào)可避免變量在宿主機(jī)側(cè)被提前展開
  • 腳本被寫入容器內(nèi) /tmp/export_dbs.sh

3. MySQL 認(rèn)證方式

PASSWORD="root"
mysql -uroot -p${PASSWORD} --socket=/var/run/mysqld/mysqld.sock
  • 使用 root 用戶連接
  • 通過 Unix Socket 連接 MySQL(適用于官方 MySQL Docker 鏡像)
  • 避免 TCP 連接帶來的端口問題

4. 獲取并過濾數(shù)據(jù)庫列表

SHOW DATABASES;

配合 grep -v 過濾系統(tǒng)數(shù)據(jù)庫:

  • information_schema
  • mysql
  • performance_schema
  • sys

最終只保留業(yè)務(wù)數(shù)據(jù)庫。

5. 循環(huán)導(dǎo)出數(shù)據(jù)庫

while read db; do
  mysqldump --databases "$db" > "/tmp/$db.sql"
done

特點(diǎn):

  • 每個(gè)數(shù)據(jù)庫生成一個(gè)獨(dú)立的 SQL 文件
  • 文件命名規(guī)則:數(shù)據(jù)庫名.sql
  • 便于單庫恢復(fù)與管理

四、導(dǎo)出結(jié)果說明

導(dǎo)出完成后:

SQL 文件位于容器內(nèi):

/tmp/*.sql

如需拷貝到宿主機(jī),可使用:

docker cp mysql-container:/tmp/dbname.sql .

或批量拷貝整個(gè)目錄。

五、適用場(chǎng)景

MySQL Docker 容器備份

數(shù)據(jù)遷移前批量導(dǎo)出

CI / 自動(dòng)化備份腳本

測(cè)試環(huán)境數(shù)據(jù)庫快照

六、注意事項(xiàng)

不建議在生產(chǎn)環(huán)境明文寫密碼(可改用 .my.cnf

大庫導(dǎo)出時(shí)注意磁盤空間

可根據(jù)需要添加 --single-transaction 以減少鎖表

七、總結(jié)

通過一條 docker exec 命令,我們實(shí)現(xiàn)了:

  • 在容器內(nèi)動(dòng)態(tài)生成腳本
  • 自動(dòng)過濾系統(tǒng)數(shù)據(jù)庫
  • 批量導(dǎo)出所有業(yè)務(wù)庫
  • 無需手動(dòng)進(jìn)入容器操作

到此這篇關(guān)于使用Docker實(shí)現(xiàn)MySQL容器中批量導(dǎo)出所有數(shù)據(jù)庫的文章就介紹到這了,更多相關(guān)Docker MySQL導(dǎo)出數(shù)據(jù)庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何解決mysql配置文件錯(cuò)誤導(dǎo)致在docker中無法啟動(dòng)的問題

    如何解決mysql配置文件錯(cuò)誤導(dǎo)致在docker中無法啟動(dòng)的問題

    這篇文章主要介紹了如何解決mysql配置文件錯(cuò)誤導(dǎo)致在docker中無法啟動(dòng)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • CentOS7.3中Docker的安裝教程

    CentOS7.3中Docker的安裝教程

    Docker 是一個(gè)開源的應(yīng)用容器引擎,基于Go語言并遵從Apache2.0協(xié)議開源。這篇文章主要給大家介紹CentOS7.3中Docker的安裝教程,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2017-04-04
  • Centos中使用Docker安裝rabbitmq的問題記錄

    Centos中使用Docker安裝rabbitmq的問題記錄

    這篇文章主要介紹了Centos中使用Docker安裝rabbitmq的問題記錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-05-05
  • 如何查看docker中mysql的版本問題

    如何查看docker中mysql的版本問題

    這篇文章主要介紹了如何查看docker中mysql的版本問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 詳解基于Harbor搭建Docker私有鏡像倉庫

    詳解基于Harbor搭建Docker私有鏡像倉庫

    這篇文章主要介紹了詳解基于Harbor搭建Docker私有鏡像倉庫,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • docker進(jìn)入容器運(yùn)行命令的使用及說明

    docker進(jìn)入容器運(yùn)行命令的使用及說明

    本文介紹了如何使用Docker進(jìn)入容器進(jìn)行調(diào)試、管理和運(yùn)行命令,主要包括使用docker exec、docker attach和nsenter命令進(jìn)入容器的方法,并詳細(xì)介紹了docker inspect命令的使用以及如何獲取容器/鏡像的元數(shù)據(jù)
    2026-02-02
  • docker打包python鏡像的全教程分享

    docker打包python鏡像的全教程分享

    Docker是一種開源的容器化平臺(tái),可以讓開發(fā)者將應(yīng)用程序和其依賴項(xiàng)打包到一個(gè)可移植的容器中,然后在不同的環(huán)境中運(yùn)行,本文主要給大家介紹了docker打包python鏡像全教程,需要的朋友可以參考下
    2024-02-02
  • IDEA遠(yuǎn)程連接Docker的流程步驟

    IDEA遠(yuǎn)程連接Docker的流程步驟

    這篇文章主要介紹了IDEA遠(yuǎn)程連接Docker的流程步驟,文中通過代碼示例給大家介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)IDEA遠(yuǎn)程連接Docker有一定的幫助,需要的朋友可以參考下
    2024-10-10
  • docker 部署 Elasticsearch kibana及ik分詞器詳解

    docker 部署 Elasticsearch kibana及ik分詞器詳解

    這篇文章主要介紹了docker 部署 Elasticsearch kibana及ik分詞器詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • Dockerfile文件詳細(xì)介紹

    Dockerfile文件詳細(xì)介紹

    Dockerfile 是一個(gè)文本文件,里面包含組裝新鏡像時(shí)用到的基礎(chǔ)鏡像和各種指令。使用dockerfile 文件來定義鏡像,然后運(yùn)行鏡像,啟動(dòng)容器。本文詳細(xì)介紹了Dockerfile文件,感興趣的小伙伴可以參考一下
    2023-04-04

最新評(píng)論

安岳县| 新宾| 鹤山市| 怀宁县| 临潭县| 三穗县| 嘉兴市| 洛南县| 宁夏| 莲花县| 行唐县| 郯城县| 襄城县| 景泰县| 阜平县| 库车县| 南陵县| 句容市| 八宿县| 左云县| 合阳县| 藁城市| 山阳县| 澜沧| 余姚市| 江安县| 左贡县| 桦川县| 织金县| 西乌珠穆沁旗| 建平县| 雅江县| 承德县| 七台河市| 布尔津县| 禄丰县| 太康县| 察哈| 潼关县| 玉溪市| 旬邑县|