arch-linux – MySQL不同的数据库位置
作者:互联网
参见英文答案 > mysql database no space available 3个
我的根分区上没有足够的空间来存储数据库.
$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更改为新位置会导致权限问题([警告]无法创建测试文件/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
标签:mysql,mariadb,arch-linux 来源: https://codeday.me/bug/20190814/1654045.html