![将 MySQL 文件恢复到新磁盘 14.04-权限?](https://linux22.com/image/852842/%E5%B0%86%20MySQL%20%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E5%88%B0%E6%96%B0%E7%A3%81%E7%9B%98%2014.04-%E6%9D%83%E9%99%90%EF%BC%9F.png)
我正在用新磁盘重建我的计算机,并备份了我的 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 之间,您可能不会看到太多问题,但更大的变化有时可能会成为问题。例如,在过去的一些升级中,用户名的哈希处理方式发生了巨大变化,并且使用较旧的原始文件需要特殊的配置选项,如果不使用特殊工具或命令,则无法解决。