今天升级软件包把服务器玩跪了 nginx 和 mysql 都罢工而且没法重装(好像是依赖乱了)一边上班搬砖一边救火终于捡回来一个完整博客
中间掉进坑里无数次,但实际解决方法意外的简单:
- sftp 到 /var/lib/mysql 也就是默认的 data dir,复制出来 ib_logfile0、 ib_logfile1、ibdata1(InnoDB 的文件)和 wordpress/ 数据库目录
- ssh 到新的 remote 装好 LNMP 基本环境,把上面备份的文件复制到 /var/lib/mysql,然后对这个目录 chown -R mysql:mysql 修一下权限
- 进 phpMyAdmin 检查一下,同时先导出一份 sql 备份
- 装 WordPress 挂上这个原来的数据库(也可以把备份导入到已有的数据库,但是要过渡性地改一下 wp_options 表里面的 URL)
- 进 wp-admin 页面装回原来的插件和主题(看页面上的报错就知道缺了哪些插件),同时导出一份 xml 备份
- DNS 把原来域名指向新的 remote
教训:
- 不要在滚动更新的发行版上装生产环境
- 不要在滚动更新的发行版上装生产环境
- 不要在滚动更新的发行版上装生产环境,其实我装的就是 Debian,但我嫌包太老智障一般把 apt 切换到了 unstable 频道
- 保持冷静,出问题先拍一个快照止损,然后能备份的全部拖下来备份
- 看官方文档,一开始看半天 reddit 和 stackoverflow 全都是无效信息,最后思路全部是 mysql 和 wordpress 官方文档提供的
- 鸡蛋不要放在一个篮子里,虽然救回一个博客,但是本来配置的 RSS、pastebin 和 nextcloud 都没了
- 管理型服务多收的钱真的不完全是黑心
Please be advised that this post was written or last updated a while ago and may therefore contain outdated information or opinions I no longer hold.
请知悉本文自写作或上次更新已届相当时限,或包含过时信息及观点。