【问题标题】:Adding root user to mysql wheel将root用户添加到mysql轮
【发布时间】:2014-01-10 03:55:26
【问题描述】:

我的外部硬盘驱动器上有一个数据库,所以我安装了这个硬盘驱动器,并在/var/lib/mysql 中创建了一个符号链接到我的数据库文件夹。

但是因为我将硬盘驱动器安装为root 用户,而mysql 用户是mysql,所以我无法访问该数据库。

是否可以将root用户添加到mysql wheel?

【问题讨论】:

    标签: mysql linux ubuntu permissions


    【解决方案1】:

    将 root 添加到 mysql 组根本不会做任何事情,将 mysql 添加到 wheel 组可能不会对您做任何非常有用的事情。有很多方法可以解决这样的问题...您的一般问题是mysql服务器无法读取和写入root拥有的文件。

    虽然 mysql 服务器可以设置为以 root 用户身份运行(也许通过从启动脚本中删除 --user=mysql 行),但这是一个非常糟糕的主意。更好的查询方式是使文件适合 mysql 用户读写。

    我希望你可能有一个简单的文件权限问题,只需要运行Ubuntu Manpage: chown 实用程序就可以使数据库为 mysql 拥有,如下所示:

    chown -R mysql /path/to/your/external/database
    

    然后重启mysql守护进程。

    啊,chown 没有工作,即使你以 root 身份运行它?亲爱的。

    也许它说此设备上不允许操作?您可能在 USB 记忆棒或其他东西上有一个 fat32 文件系统?也许mounting mysql 用户而不是root 的设备会为您修复它:

    umount /path/to/external/device
    mount -t vfat -o uid=mysql /dev/foo /path/to/external/device
    

    这应该使设备上的所有文件都报告它们由 mysql 用户拥有,这应该可以解决问题。

    如果您打算将此作为长期解决方案,最好在某个时候将设备重新格式化为原生 linux 文件系统,这样它就可以拥有真正的用户和权限。 ...并始终首先备份您的数据! ^_^

    编辑: 如果您愿意,可以使用 --bind 参数挂载以使目录显示在多个位置,但重新映射用户 ID 等操作将不起作用。如果要重新映射用户标识,卸载物理设备,使用 -o uid=mysql 挂载物理设备,然后一旦整个磁盘都可以使用 mysql 的用户标识,请随意 --bind 将其绑定到多个位置。

    【讨论】:

    • 谢谢,但是当我使用你的命令时,数据库将再次挂载为root!我使用这个命令是因为我想挂载一个文件夹:sudo mount --bind -t vfat -o uid=mysql /media/hdd/server/databases /media/mysql
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多