将 MySQL 文件恢复到新磁盘 14.04-权限?

将 MySQL 文件恢复到新磁盘 14.04-权限?

我正在用新磁盘重建我的计算机,并备份了我的 MySQL 数据库 - 我已将它们移动到 /var/lib/mysql 并且当我尝试时:

sudo /etc/init.d/mysql start

MySQL 拒绝启动 - 错误日志显示以下错误。我假设我在 /var/lib/mysql 上的权限是错误的,但不确定如何继续。

140421 12:03:59 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140421 12:03:59 InnoDB: Compressed tables use zlib 1.2.8
140421 12:03:59 InnoDB: Using Linux native AIO
140421 12:03:59 InnoDB: Initializing buffer pool, size = 128.0M
140421 12:03:59 InnoDB: Completed initialization of buffer pool
140421 12:03:59  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.

非常感谢...

答案1

权限(特别是所有权)可能是一个问题,在这种情况下,可以通过执行以下操作将其更正为默认值:

sudo chown -R mysql:mysql /var/lib/mysql

显然,如果您编辑了运行 MySQL 的用户/组,请更改用户名(该命令中的第一个 mysql)和组(第二个)。

不过,我想指出的是,在迁移时通常不建议备份原始文件。通常首选使用 mysqldump 命令,因为它使用 SQL 输出到文本文件,新版本可以干净地导入和执行该文件。

在 12.04 和 14.04 之间,您可能不会看到太多问题,但更大的变化有时可能会成为问题。例如,在过去的一些升级中,用户名的哈希处理方式发生了巨大变化,并且使用较旧的原始文件需要特殊的配置选项,如果不使用特殊工具或命令,则无法解决。

相关内容