Arch-Linux
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
更改我的數據目錄。
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