我在拇指驱动器上有 MySQL 数据文件,它们在mysql
用户 UID 不同的两台主机上使用。因此,当 MySQL 的文件具有0700
perms 和未知的 UID 作为所有者时,MySQL 无法启动。
我找不到如何更改 MySQL 的 umask(实际上我不喜欢将这些文件共享给所有人的想法),因此我想更改mysql
两台主机上用户的 UID,以便文件属于同一个用户。
我要将 UID 和chown
旧 mysql UID 拥有的所有文件更改为新用户:
usermod --uid 900 --gid 900 mysql # assign the new uid
olduid=67 find / -user $olduid -group $olduid -print0 | xargs -0 chown "mysql:mysql"
这足以让应用程序在一般情况下工作吗?也许,我有更好的选择?
我进行了一些研究,并注意到在更改 UID 和 GID 时应该考虑两件事:
id -u mysql
=120 和id -g mysql
=127因此,我们首先改变UID和GID:
然后我们
find
分别为后期用户和组拥有的文件:'user=mysql'转到一个文件,'group=mysql'转到另一个文件。我们还从find
遍历树中排除了一些目录:只有现在可以更改找到的这些文件的所有者和组:
最后,我们检查一切是否正常:查找由 GID 的未知 UID 拥有的文件:
希望这可以帮助某人。
是的,这就是你需要做的几乎所有事情。唯一需要更改的文件是日志和数据文件。
您可能想使用 find | xargs 而不是循环。