MySQLの他のデータベースの場所

MySQLの他のデータベースの場所

ルートパーティションにデータベースを格納する領域が不足しています。

$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/ManjaroVG-ManjaroRoot   29G   21G  6.4G  77% /
dev                                1.9G     0  1.9G   0% /dev
run                                1.9G  852K  1.9G   1% /run
tmpfs                              1.9G   76K  1.9G   1% /dev/shm
tmpfs                              1.9G     0  1.9G   0% /sys/fs/cgroup
tmpfs                              1.9G  596K  1.9G   1% /tmp
/dev/mapper/ManjaroVG-ManjaroHome  197G   54G  133G  29% /home
/dev/sda1                          247M   88M  147M  38% /boot
tmpfs                              383M  8.0K  383M   1% /run/user/1000

my.cnfのdatadirをcnf新しい場所に変更すると権限の問題が発生する([警告]テストファイルを生成できない/home/u/tmp/mysql/acpfg.lower-test

MariaDB / MySQLがLinux上でデータベースを保存するディレクトリ(/home/u/tmp/mysqlなど)を変更するにはどうすればよいですか?

ベストアンサー1

別の場所からデータディレクトリを見つけるようにMySQLを再構成するか、元の場所の上に新しい場所をバインドインストールすることができます。

mysql変更する前にサービスが停止していることを確認してください。

次に、すべてのファイルとサブディレクトリを元の場所から新しい場所に移動します。

MySQLの再構成

編集/etc/my.cnfして次に変更しますdatadir

datadir=/home/u/tmp/mysql

または...

バインドマウント

バインドマウントを使用して、元の位置の上に新しい位置をマウントします。

mount --bind /home/u/tmp/mysql /var/lib/mysql

すべてが正常に動作していると満足したら、修正して永久に/etc/fstab作成してください。

/home/u/tmp/mysql /var/lib/mysql  none  bind 0 0

ファイル権限

どの方法を選択しても、以下のように新しい場所の権限が正しいことを確認する必要があります。

最上位ディレクトリ(/home/u/tmp/mysql)と以下のすべてのエントリは、ユーザーとグループが所有する必要がありますmysqlmysqlArch Linuxで実行されていると仮定)。

# chown -R mysql. /home/u/tmp/mysql

すべてのファイルは次のとおりです。

# find /home/u/tmp/mysql/ -type f -exec chmod 0660 {} \;

すべてのディレクトリは次のとおりです。

# find /home/u/tmp/mysql/* -type d -exec chmod 0700 {} \;

最上位ディレクトリは次のとおりです。

# chmod 0755 /home/u/tmp/mysql

おすすめ記事