You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker Volume中WordPress数据库访问与站点恢复问题

解决Docker WordPress卷恢复问题的实操步骤

1. 先确认卷内数据是否存活

先别瞎调配置,先确认你的mysql_vol和wdp_vol里真的有旧数据:

  • 查MySQL卷:运行 docker run --rm -v mysql_vol:/mysql_data busybox ls -la /mysql_data,看有没有wordpress文件夹、.ibd这类数据库文件
  • 查WordPress卷:运行 docker run --rm -v wdp_vol:/wp_data busybox ls -la /wp_data,看有没有wp-config.php、wp-content文件夹,尤其是wp-content里的主题、上传文件是否还在

2. 核对环境变量与数据库匹配度

WordPress跳新安装,90%是数据库连不上或旧数据没被识别,先查这几点:

  • 打开.env文件,确认MYSQL_ROOT_PASSWORD、MYSQL_USER、MYSQL_PASSWORD和你之前用的完全一致,多一个空格都不行
  • 登phpMyAdmin(http://localhost:8080),用root账号进去看wordpress数据库是否存在,里面有没有wp_posts、wp_options这些表。如果数据库是空的,说明mysql_vol要么没挂载对,要么已经被清空了
  • 如果数据库有旧表,查wp_options里的siteurl和home字段,改成你现在访问的地址(http://localhost:8000)

3. 从WordPress卷捞备份(如果数据库卷挂了)

要是mysql_vol真的没数据了,但wdp_vol还在,至少能捞回内容:

  • 把卷内文件复制到本地:docker run --rm -v wdp_vol:/wp_data -v $(pwd)/wp_backup:/backup busybox cp -r /wp_data/* /backup,本地会生成wp_backup文件夹
  • 检查wp_backup/wp-content/backups(部分主题/插件会自动存备份),有SQL文件就直接在phpMyAdmin导入
  • 就算没备份,wp-content里的主题、插件、上传文件都在,重新装WordPress后替换wp-content就行

4. 修正Docker Compose配置细节

你的compose文件有几个坑,调整后再试:

  • 去掉external: true(除非你手动把卷设成了外部卷),改成直接指定卷名,让Compose关联已存在的卷:
volumes:
  mysql_vol:
    name: mysql_vol
  wdp_vol:
    name: wdp_vol
  • 给db服务加健康检查,避免WordPress启动时MySQL还没就绪:
services:
  db:
    # 保留原有配置,新增健康检查
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"]
      interval: 5s
      timeout: 5s
      retries: 5
  wordpress:
    depends_on:
      db:
        condition: service_healthy  # 等MySQL健康检查通过再启动
  • 重启服务:docker compose down && docker compose up -d

5. 极端情况:临时挂载卷排查

以上都不行,直接挂载卷到临时容器手动查:

  • 临时启动MySQL容器看数据:
docker run --rm -it -v mysql_vol:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=你的root密码 mysql:8.0.32 bash
# 进容器后登录MySQL
mysql -uroot -p
# 查数据库
show databases;
use wordpress;
show tables;
  • 临时启动Apache容器看WordPress文件:
docker run --rm -p 8001:80 -v wdp_vol:/var/www/html httpd:2.4
# 访问http://localhost:8001,看能不能看到旧站点内容,或者下载wp-config.php查数据库配置

内容的提问来源于stack exchange,提问作者gxs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 03:30:35