在使用 MySQL 镜像(如 Docker 中的 MySQL 容器)时,导出数据库是常见操作,用于备份、迁移或恢复数据。下面介绍如何从 MySQL 镜像中正确配置并导出数据库内容。
确认容器运行状态
导出前需确保 MySQL 容器正在运行,并知道容器名称或 ID 以及数据库登录凭据。
查看运行中的容器:docker ps 记录容器名称(如 mysql-container)和映射端口 准备 root 密码或具备权限的数据库账号使用 mysqldump 导出数据库
最常用方式是通过 mysqldump 命令将数据库导出为 SQL 文件。
执行命令导出单个数据库:docker exec mysql-container mysqldump -u root -p database_name > backup.sql 若已设置密码环境变量,可直接使用:
docker exec mysql-container mysqldump -u root --password=your_password database_name > backup.sql 导出所有数据库:
docker exec mysql-container mysqldump -u root -p --all-databases > full_backup.sql
导出文件保存位置与权限处理
注意导出文件默认保存在宿主机当前目录,需确保有写入权限。
建议指定完整路径避免丢失:docker exec mysql-container mysqldump -u root -p database_name > /host/path/backup.sql 若提示权限不足,检查目录权限或使用 sudo 也可先在容器内生成文件,再复制出来:
先执行:docker exec mysql-container sh -c 'mysqldump -u root -p$MYSQL_ROOT_PASSWORD database_name' > backup.sql
压缩导出以节省空间
大数据量时建议直接压缩输出。
导出并压缩为 gzip 文件:docker exec mysql-container mysqldump -u root -p database_name | gzip > backup.sql.gz 解压后可用于导入:
gunzip
基本上就这些。只要容器正常运行,使用 docker exec 调用 mysqldump 是最稳定可靠的导出方式。注意保护好导出文件中的敏感信息,避免泄露。
