【问题标题】:Backup and restore LXC container with LAMP stack - MySQL cannot start in container使用 LAMP 堆栈备份和恢复 LXC 容器 - MySQL 无法在容器中启动
【发布时间】:2016-08-05 20:21:14
【问题描述】:

我已按照以下简单说明来备份和恢复 LXC 容器:

https://stackoverflow.com/a/34194341

备份和恢复过程进展顺利。我已经三重确保在 tar 和 untar'ing 时使用 --numeric-owner 标志,并且容器启动正常。但是,容器中的 MySQL 在执行 service mysql restart(从 journalctl -xe 输出)时到处出现以下错误:

[ERROR] InnoDB: Unable to lock ./ibdata1, error: 11

[ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed.

如果我删除以下文件,我可以让它启动,以便 mysql 重新创建它们:

/var/lib/mysql/ibdata1

/var/lib/mysql/ib_logfile*

/var/lib/mysql/aria_log_control

“解决方案”来自https://bbs.archlinux.org/viewtopic.php?id=160277

但这会严重破坏我的站点数据库。

这是怎么回事?

在我看来,文件权限或类似内容出现了问题 - 但是当我比较原始、工作容器和我恢复的副本之间的所有权和权利时,它们看起来都是一样的。

【问题讨论】:

    标签: mysql backup restore lxc


    【解决方案1】:

    对于任何可能遇到此问题的人:我的典型 n00b 错误。

    我忘记在容器的配置文件中更新 rootfs 路径。

    在对现有容器进行还原测试时,我已将备份解压缩到 /var/lib/lxc 中的另一个目录 - 例如/var/lib/lxc/restored - 但尚未更新 /var/lib/lxc/restored/config 中的配置以指向正确的路径。

    这导致容器使用与我的原始容器相同的 rootfs - 仍在运行 - 容器。这是Mysql的问题。

    有趣的是,您可以启动两个共享相同 rootfs 的容器。也许在某个地方有这个“功能”的一些应用程序。

    LXC 很棒。

    【讨论】:

      猜你喜欢
      • 2018-06-24
      • 1970-01-01
      • 2014-06-19
      • 2018-06-01
      • 2022-10-06
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      相关资源
      最近更新 更多