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

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

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

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

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

一、整體思路

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

  • 通過(guò) docker exec 在 MySQL 容器中執(zhí)行 Bash
  • 動(dòng)態(tài)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)導(dǎo)出腳本 export_dbs.sh
  • 使用 mysql 命令獲取所有數(shù)據(jù)庫(kù)列表
  • 過(guò)濾掉系統(tǒng)數(shù)據(jù)庫(kù)
  • 循環(huán)調(diào)用 mysqldump,將每個(gè)數(shù)據(jù)庫(kù)導(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 容器名稱(chēng)
  • bash -c:在容器中執(zhí)行一段 Bash 命令
  • -it:支持交互與終端輸出

2. 使用 Here Document 生成腳本

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

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

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

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

SHOW DATABASES;

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

  • information_schema
  • mysql
  • performance_schema
  • sys

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

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

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

特點(diǎn):

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

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

導(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ù)庫(kù)快照

六、注意事項(xiàng)

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

大庫(kù)導(dǎo)出時(shí)注意磁盤(pán)空間

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

七、總結(jié)

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

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

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

相關(guān)文章

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

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

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

    CentOS7.3中Docker的安裝教程

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

    Centos中使用Docker安裝rabbitmq的問(wèn)題記錄

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

    如何查看docker中mysql的版本問(wèn)題

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

    詳解基于Harbor搭建Docker私有鏡像倉(cāng)庫(kù)

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

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

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

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

    這篇文章主要介紹了IDEA遠(yuǎn)程連接Docker的流程步驟,文中通過(guò)代碼示例給大家介紹的非常詳細(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 文件來(lái)定義鏡像,然后運(yùn)行鏡像,啟動(dòng)容器。本文詳細(xì)介紹了Dockerfile文件,感興趣的小伙伴可以參考一下
    2023-04-04

最新評(píng)論

清原| 共和县| 六盘水市| 靖州| 龙里县| 营口市| 广丰县| 巍山| 合江县| 巩留县| 荆门市| 玛沁县| 沧州市| 凤庆县| 建湖县| 宁阳县| 甘德县| 永平县| 封丘县| 民丰县| 平度市| 安溪县| 北流市| 浦城县| 涟水县| 宁晋县| 报价| 凤城市| 津南区| 仁布县| 丰顺县| 大埔区| 乌鲁木齐县| 大连市| 镇雄县| 炉霍县| 六安市| 南木林县| 湟中县| 洛阳市| 绍兴市|