루트 파티션에 데이터베이스를 저장할 공간이 부족합니다.
$ 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
)와 아래의 모든 항목은 사용자와 그룹이 소유해야 합니다 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
답변2
이와 같은 설정은 MySQL 구성 파일(예: /etc/mysql/my.cnf, 정확한 위치는 시스템에 따라 다름)에 들어갑니다. 문제의 설정은 datadir입니다.http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_datadir더 많은 정보를 알고 싶습니다.