尝试从崩溃的服务器恢复 MySQL 数据库时,我不断收到“mysqldump 无法执行‘show create table 不存在 (1146)”

尝试从崩溃的服务器恢复 MySQL 数据库时,我不断收到“mysqldump 无法执行‘show create table 不存在 (1146)”

我的 OpenSuse 13.1 服务器崩溃了,无法启动,但我设法将硬盘连接到另一台计算机,并复制了 /var/lib/mysql 中的文件

在新安装中,我按照此答案中概述的步骤进行操作:https://serverfault.com/a/449238/371208

但是,当我尝试启动 MySQL 时,出现以下信息:“mysql.service 作业失败。请参阅‘systemctl status mysql.service’和‘journalctl -xn’了解详情。”

运行“journalctl -xn”时,输出如下:

-- 日志开始于 2016-08-18 星期四 15:19:12 EAT,结束于 2016-08-18 星期四 17:49:02 EAT。 -- 8 月 18 日 17:45:13 CPMA dbus[600]: [系统] 成功激活服务“org.kde.powerdevil.backlighthelper” 8 月 18 日 17:46:28 CPMA dbus[600]: [系统] 激活服务名称 =“org.kde.powerdevil.backlighthelper”(使用 servicehelper) 8 月 18 日 17:46:28 CPMA dbus[600]: [系统] 成功激活服务“org.kde.powerdevil.backlighthelper” 8 月 18 日 17:48:32 CPMA systemd[1]: 正在启动 LSB: 启动 MySQL 数据库服务器... -- 主题:单元 mysql.service 已开始启动 -- 定义者:systemd

- 支持:

-- 单元 mysql.service 已开始启动。 8 月 18 日 17:49:02 CPMA mysql[6300]: 启动服务 MySQL 警告:/var/run/mysql/mysql.sock 在 30 秒内未出现 8 月 18 日 17:49:02 CPMA mysql[6300]: chmod: 无法访问 '/var/run/mysql/mysqld.pid': 没有此文件或目录 8 月 18 日 17:49:02 CPMA mysql[6300]: ..失败 8 月 18 日 17:49:02 CPMA systemd[1]: mysql.service: 控制进程已退出,代码=退出状态=1 8 月 18 日 17:49:02 CPMA systemd[1]: 启动 LSB 失败:启动 MySQL 数据库服务器。 -- 主题:单元 mysql.service 已失败 -- 定义者:systemd -- 支持:http://lists.freedesktop.org/mailman/listinfo/systemd-devel

-- 文档:http://www.freedesktop.org/wiki/Software/systemd/catalog/be02cf6855d2428ba40df7e9d022f03d

-- 单元 mysql.service 已失败。

-- 结果失败。8月18日 17:49:02 CPMA systemd[1]: 单元 mysql.service 进入失败状态。

我该如何解决这个错误?

答案1

我以前见过这个错误!你可能想得太多了。这实际上是权限问题、缺少文件/文件夹或缺少 pid 文件。使用 su (su -s /bin/bash mysqld) 或 sudo (sudo -u mysqld -i) 成为 mysql 用户更容易诊断问题,因为成为正确的用户也会暴露权限问题。成为 mysql 用户后,你应该检查目录是否/var/run/mysql/存在。它还应该为每个数据库(而不是表)提供一个文件夹。另外,检查 mysql 用户是否对 /var/run/mysql* 和 /var/lib/mysql* 具有 rw 访问权限。

无论如何,权限问题可能可以通过 chown 修复。有时,当磁盘出现坏块时,文件系统所有权/权限信息会变得混乱,但也可能只是因为您的 mysql 用户在新机器上有不同的 uid。

无论如何,如果缺少 pid 文件,mysql 有时会发出抱怨并导致大量问题,因此我会在以 mysql 用户身份登录到计算机时重新创建它。您希望 mysqld_safe 的 pid 位于文件中。如果 mysql 没有运行,我猜就把它留空。

TL;DR:这确实是它看起来的样子(通常如此)。如果不是,请回复?

相关内容