2 番目のハードドライブ、/var/lib/mysql の所有者は、マウント時に nvidia によって永続化され、起動時に mysql になりますか?

2 番目のハードドライブ、/var/lib/mysql の所有者は、マウント時に nvidia によって永続化され、起動時に mysql になりますか?

2 台目の HDD が古い OS でした。起動すると /var/lib/mysql フォルダは mysql:mysql になりますが、新しい OS でマウント (LVM) すると nvidia-persistenced:vboxusers になります。

新しいシステムに対して cp -pr を実行したいのですが、権限がこのようになっていると実行できません。

何か案は?

答え1

ユーザー名は、実際には に保存されている UID へのマッピングにすぎません/etc/passwd。同様に、グループ名は の GID にマッピングされます/etc/group。ID は必要に応じて決定されます。0 は常にルートですが、その他ほとんどすべてはユーザーとグループの作成時に決定されます。

これらの *ID は、システムが定義済みのユーザーとグループとして解釈するほぼ任意の整数です。ID は必要に応じて決定されます。0 は常にルートですが、その他ほとんどすべてはユーザーとグループの作成時に決定されます。

ファイルがディスクに書き込まれるとき、ディスクに保存されるのは文字列表現ではなく、これらの UID と GID の値です。そして、それがここで起こっていることです。セカンダリ インストールでのユーザー → UID とグループ → GID のマッピングは、最初のインストールの UID と一致しません。ファイルの所有権が間違ったユーザーにマッピングされています。

古いインストールがこの問題の要因にならない場合は、所有権を mysql ユーザーに再マップするだけです。

sudo chown --recursive mysql: /var/lib/mysql

実際の MySQL インストールを確認しましたが、すべてのファイルの/var/lib/mysql所有者が だったmysql:mysqlので、これは正確であると思われます。


古いインストールを再度使用する場合は (デュアルブート スタイルの配置など)、より創造的になる必要があります。その場合、UID と GID のユーザーとグループへのマッピングを変更して同じにする必要があります (その後、新しいシステムから対応するファイルを修正します)。これはかなり面倒な作業です。

関連情報