我的外部硬盘上有一个数据库,所以我挂载了这个硬盘,并在/var/lib/mysql中创建了一个指向我的数据库文件夹的符号链接。
但是,因为我是以root用户身份挂载硬盘,而mysql用户是mysql用户,所以我无法访问该数据库。
是否可以将root用户添加到mysql轮子中?
发布于 2013-12-21 19:18:27
将root添加到mysql组中根本不会做任何事情,而将mysql添加到轮组中可能不会对您有什么特别大的帮助。有很多方法可以解决像这样的问题...您的一般问题是mysql服务器不能读写root拥有的文件。
虽然可以将mysql服务器设置为以root用户身份运行(可能是通过从启动脚本中删除-- user =mysql行),但这是一个非常糟糕的主意。更好的查询方式是使文件适合mysql用户的读取和写入。
我希望你可能有一个简单的文件权限问题,只需要运行Ubuntu Manpage: chown实用程序就可以让数据库归mysql所有,如下所示:
chown -R mysql /path/to/your/external/database然后重新启动mysql守护进程。
啊,chown不工作了,即使你以root身份运行它?哦,亲爱的。
也许它说在这个设备上不允许操作?你可能在U盘上有一个fat32文件系统,或者别的什么?也许以mysql用户而不是超级用户的身份mounting设备将为您修复它:
umount /path/to/external/device
mount -t vfat -o uid=mysql /dev/foo /path/to/external/device这应该会使设备上的所有文件都报告它们属于mysql用户,这应该可以解决问题。
但是,如果您打算将其用作长期解决方案,那么明智的做法是在某个时刻将设备重新格式化为原生linux文件系统,这样它就可以拥有真正的用户和权限。..。并且始终先备份数据!^_^
编辑:如果您愿意,可以使用--bind参数进行挂载,以使目录显示在多个位置,但是像重新映射用户id这样的操作将不起作用。如果您想要重新映射用户it,请卸载物理设备,使用-o uid=mysql挂载物理设备,然后使用mysql的用户it将整个磁盘可用后,可以随意将其绑定到多个位置。
https://stackoverflow.com/questions/20717984
复制相似问题