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以外のユーザーに変更するにはどうすればよいですか?
ファイルシステムがマウントされていない場合は、マウントポイントではなく、マウントされているファイルシステムの権限を変更する必要があります。そう mount /var/lib/mysql
、次にchown mysql.mysql /var/lib/mysql
。これにより、MySQL DBファイルシステムのルートの権限が変更されます。
基本的な考え方は、DBを保持するファイルシステムは、そのパスに問題がある場合を除いて、マウントポイントではなく変更する必要があるということです。 lib
はrootのみが読み取ることができます。
また
mount device mount-point -o uid=foo -o gid=foo
グループも変更する必要がある場合
次のように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」を追加してください
ファイルシステムがマウントされていないときに権限を変更するようにしてください-マウント中にそれを行うことは私にとってはうまくいきませんでした。
さらに、fstabに 'user'オプションを追加できます。例:
/dev/mapper/db-db /var/lib/mysql ext3 relatime,user 0 2
これは、mountコマンド(呼び出す必要がある場合)がそのボリュームをマウントするためにroot特権を必要としないことも意味するはずです。 fstabを変更しなくても、問題の修正は止まりません!
私は通常、空のマウントされていないディレクトリでこれを行います
chmod 777 <directory>
次に行う
chown -R mysql.mysql <directory>
次に/ etc/fstabで
<device> <directory> ext3 user,defaults 0 2
次に使用します
mount -a
/ etc/fstabにリストされているすべてのファイルシステムをマウントします。
これでうまくいきます。試してみる
mount
コマンドラインの一部としてのみ実行する場合は、-o
スイッチを使用して次のように実行できます。
mount device mount-point -o uid=foo
これにより、マウントポイントの所有者がrootではなくユーザーfoo
に変更されます。