mysql 데이터 디렉토리를 다른 디스크로 옮겼으므로 이제는 /var/lib/mysql
다른 파티션에 대한 마운트 지점일 뿐입니다. 디렉토리 소유자를 /var/lib/mysql
로 설정했습니다 mysql.mysql
.
하지만 파티션을 마운트할 때마다 소유권이 root.root
. 이로 인해 추가 MySQL 데이터베이스를 생성할 수 없었습니다.
fstab 항목:
/dev/mapper/db-db /var/lib/mysql ext3 relatime 0 2
마운트 지점의 소유자를 루트가 아닌 사용자로 변경하는 방법은 무엇입니까?
답변1
파일 시스템이 마운트되지 않은 경우 마운트 지점이 아닌 마운트된 파일 시스템의 권한을 변경해야 합니다. 그럼 .mount /var/lib/mysql
chown mysql.mysql /var/lib/mysql
그러면 MySQL DB 파일 시스템의 루트 권한이 변경됩니다.
기본 아이디어는 경로에 문제가 있는 경우(예: lib
루트에서만 읽을 수 있는 경우)가 아닌 한 마운트 지점이 아닌 DB를 보유하는 파일 시스템을 변경해야 한다는 것입니다.
답변2
또한
mount device mount-point -o uid=foo -o gid=foo
그룹도 변경해야 하는 경우
답변3
중요 면책조항(의견을 통해 알게 됨):
uid 및 gid 플래그는 Linux 권한 스키마(즉, FAT 및 NTFS 등)를 지원하지 않는 파일 시스템에서만 작동합니다.
따라서 이것은 OP에 대한 정답은 아니지만 다른 사람들에게는 도움이 됩니다.
다음과 같이 uid와 gid를 추가합니다.
/dev/mapper/db-db /var/lib/mysql ext3 relatime,rw,exec,uid=frank,gid=www-group 0 2
실제 사용자/그룹 이름(공백 주의) 또는 숫자 uid, gid 값을 사용할 수 있습니다. 액세스 문제를 예방하는 데 도움이 될 수 있는 rw 및 exec를 추가했습니다(프로덕션 서버가 아닌 개발 시스템에 있다고 가정).
추신: 더 많은 액세스를 원할 경우(원하는 경우) ",dir_mode=0777,file_mode=0777"을 추가하세요.
답변4
나는 보통 마운트되지 않은 빈 디렉토리에서 이 작업을 수행합니다.
chmod 777 <directory>
그럼 해
chown -R mysql.mysql <directory>
그런 다음 /etc/fstab에서 다음을 수행하십시오.
<device> <directory> ext3 user,defaults 0 2
그런 다음 사용
mount -a
/etc/fstab에 나열된 모든 파일 시스템을 마운트합니다.
이것은 나에게 효과적입니다. 시도 해봐