Arch-Linux

MySQL不同的數據庫位置

  • August 23, 2014

我的根分區上沒有足夠的空間來儲存數據庫。

$ 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

更改我的數據目錄。cnf到新位置導致權限問題(

$$ Warning $$無法創建測試文件/home/u/tmp/mysql/acpfg.lower-test ) 如何更改 MariaDB/MySQL 在 Linux 下儲存數據庫的目錄(例如更改為 /home/u/tmp/mysql)?

您可以重新配置 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) 和下面的所有內容都應該歸使用者和組所有mysql(假設mysql在 Arch 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

引用自:https://unix.stackexchange.com/questions/151523