mysql データ ディレクトリを別のディスクに移動したので、現在は/var/lib/mysql
別のパーティションへのマウント ポイントになっています。ディレクトリの所有者/var/lib/mysql
を に設定しましたmysql.mysql
。
しかし、パーティションをマウントするたびに、所有権が に変更されますroot.root
。このため、追加の MySQL データベースを作成できませんでした。
fstab エントリ:
/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2
マウントポイントの所有者を root 以外のユーザーに変更するにはどうすればよいですか?
答え1
ファイルシステムがマウントされていない場合は、マウント ポイントの権限ではなく、マウントされたファイルシステムの権限を変更する必要があります。これmount /var/lib/mysql
でchown mysql.mysql /var/lib/mysql
、MySQL DB ファイルシステムのルートの権限が変更されます。
lib
基本的な考え方は、パスに何らかの問題 (たとえば、 root によってのみ読み取り可能)がない限り、マウント ポイントではなく、DB を保持するファイルシステムを変更する必要があるということです。
答え2
また
mount device mount-point -o uid=foo -o gid=foo
グループも変更する必要がある場合
答え3
重要な免責事項(コメントから知りました):
uid および gid フラグは、Linux の権限スキーマをサポートしていないファイルシステム (FAT や NTFS など) でのみ機能します。
したがって、これはOPに対する正しい回答ではありませんが、他の人には役立ちます
次のように uid と gid を追加します。
/dev/mapper/db-db /var/lib/mysql ext3 relatime,rw,exec,uid=frank,gid=www-group 0 2
実際のユーザー名/グループ名 (スペースに注意してください) または数値の uid、gid 値を使用できます。rw と exec を追加しました。これらはアクセスの問題をさらに防ぐのに役立つ可能性があります (実稼働サーバーではなく開発システムを使用している場合)。
PS: さらに多くのアクセスが必要な場合は (必要な場合)、「,dir_mode=0777,file_mode=0777」を追加してください。
答え4
私は通常、空のマウントされていないディレクトリでこれを行います
chmod 777 <directory>
次に
chown -R mysql.mysql <directory>
次に/etc/fstabで
<device> <directory> ext3 user,defaults 0 2
次に
mount -a
/etc/fstab にリストされているすべてのファイルシステムをマウントします。
これは私には効果がありました。試してみてください