【发布时间】:2014-01-10 03:55:26
【问题描述】:
我的外部硬盘驱动器上有一个数据库,所以我安装了这个硬盘驱动器,并在/var/lib/mysql 中创建了一个符号链接到我的数据库文件夹。
但是因为我将硬盘驱动器安装为root 用户,而mysql 用户是mysql,所以我无法访问该数据库。
是否可以将root用户添加到mysql wheel?
【问题讨论】:
标签: mysql linux ubuntu permissions
我的外部硬盘驱动器上有一个数据库,所以我安装了这个硬盘驱动器,并在/var/lib/mysql 中创建了一个符号链接到我的数据库文件夹。
但是因为我将硬盘驱动器安装为root 用户,而mysql 用户是mysql,所以我无法访问该数据库。
是否可以将root用户添加到mysql wheel?
【问题讨论】:
标签: mysql linux ubuntu permissions
将 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