导入 1.2GB 的 SQL 到一半 SSH 断开,重连后 wp_posts 有数据、wp_options 是空的,前台白屏,后台返回 500。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

screen -S restore
mysql blog < backup.sql
# Ctrl+A D 脱离,断线后 screen -r restore

mysql 客户端跟着会话一起被杀,导入停在中间,前面的表已提交,后面的没建。数据库既不是旧状态也不是新状态。这一点先确认清楚,后面就不用反复试。

碰到「还原中断修复」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

具体做法是,先停掉站点写入 避免半残状态下继续产生数据;用 screen 或 nohup 跑导入 断线不影响进程;导入前先删库重建 保证从一个干净状态开始。

改完照着核一遍,导入完成后表数量和数据量都对得上,前台能正常打开。

作者 9823189