【问题标题】:How can I copy contents out of MySQL folder without giving ownership of the folder to root in Linux?如何在不将文件夹的所有权授予 Linux 根目录的情况下从 MySQL 文件夹中复制内容?
【发布时间】:2020-07-14 14:31:53
【问题描述】:

我正在尝试在 Linux 服务器上备份 MySQL 数据库,然后再对正在使用该数据库的软件 (Omeka) 进行一些升级。

Omeka 文档为此提供的命令如下:

mysqldump -h localhost -u 用户名 -p omeka_db_name > omeka_db_backup.sql

但是,当我运行此程序时,我收到了“权限被拒绝”这样非常有用的模糊消息。如果我以 sudo 身份运行命令,它会执行此操作。无论我尝试将备份文件保存到哪个目录,它都会执行此操作。当我运行 mysql dump 时它不会提示我输入 MySQL 密码,但是当我运行“mysql”命令并且它接受我输入的密码时它会提示我,所以我知道问题不在于我使用了错误的凭据.

我无法直接在 shell 中导航到 MySQL 文件夹,当我使用 WinSCP 访问服务器时,MySQL 文件夹被列为“MySQL”而不是“root”所有。所以我假设我没有权限从这个文件夹中复制任何东西,这是我的问题。我不想随意将 MySQL 文件夹的所有权分配给 root,因为我担心这可能会破坏 MySQL 从该文件夹读取和写入的能力。

我要做的就是将数据库文件复制到某处作为备份。哎呀,如果我必须这样做,我会将整个 MySQL 文件夹复制到某个地方。如何在不破坏 MySQL 的情况下做到这一点?

【问题讨论】:

  • 可能被拒绝的权限来自 shell,因为它试图将 stdout 重定向到当前工作目录中的omeka_db_backup.sql
  • 您能改为通过phpMyAdmin 运行导出吗?

标签: mysql linux omeka


【解决方案1】:

Root 拥有一切权限。可能会有一些额外的保护措施,具体取决于(有一些安全软件会限制 root 权限)。 您可以使用: mysqldump -h localhost -u username -p omeka_db_name > /path/to/some/other/directory/omeka_db_backup.sql

并将备份放在您可以正常访问的目录中。如果使用 mysqldump,则不需要写入 mysql 目录。

【讨论】:

    猜你喜欢
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    相关资源
    最近更新 更多