我有第二个硬盘驱动器,这是我的旧操作系统。当我启动它时,/ var / lib / mysql文件夹是mysql:mysql,但是当我在新操作系统中安装它(LVM)时,它是nvidia-persistenced:vboxusers。
我想对新系统执行cp -pr,但是当权限是这样的时候不能。
有任何想法吗?
我有第二个硬盘驱动器,这是我的旧操作系统。当我启动它时,/ var / lib / mysql文件夹是mysql:mysql,但是当我在新操作系统中安装它(LVM)时,它是nvidia-persistenced:vboxusers。
我想对新系统执行cp -pr,但是当权限是这样的时候不能。
有任何想法吗?
Answers:
用户名实际上只是到存储在中的UID的映射/etc/passwd
。同样,组名从映射到GID /etc/group
。标识是在需要时确定的。0始终是根用户,但是几乎所有其他情况都在创建用户和组时决定。
这些* ID是几乎任意整数,系统会将其解释为已定义的用户和组。标识是在需要时确定的。0始终是根用户,但是几乎所有其他情况都在创建用户和组时决定。
将文件写入磁盘时,存储在磁盘上的是这些UID和GID值,而不是字符串表示形式。这就是这里正在发生的事情。辅助安装中的用户→UID和组→GID映射与第一次安装中的UID不一致。它将文件所有权映射到错误的用户。
如果您的旧安装永远不会成为影响因素,那么我只需将所有权重新映射到mysql用户:
sudo chown --recursive mysql: /var/lib/mysql
我已经检查了真实世界中的MySQL安装,所有文件/var/lib/mysql
都归我所有,mysql:mysql
因此我认为这应该是准确的。
如果将再次使用旧的安装(例如双重引导样式的设置),则需要更具创造力。在这些情况下,您可能需要更改UID和GID与用户和组的映射,使它们相同(然后从新系统中修复相应的文件)。这将是相当乏味的。