微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐