나는 대용량 가상 드라이브가 포맷되어 있고 파티션이 없는 Debian 10 머신을 가지고 있습니다. df에는 /dev/sdb로 나타납니다. mariadb의 인스턴스는 Debian 10의 표준으로 /var/lib/mysql에 있지만 복제로 인해 루트 파일 시스템을 Bin 로그로 자주 채웁니다. 이 문제를 완화하기 위해 대용량 /dev/sdb 파일 시스템으로 옮겼습니다.
/dev/sdb(/usr/www1/)의 마운트 지점으로 이동할 때 정확히 일치하는 권한을 가진 mysql 디렉토리를 생성하고 파일을 이 새로운 /usr/www1/ mysql 디렉토리에 "rsync -avzh"로 변경했습니다. mariadb 서버 conf 파일의 datadir. 실행하려고 하면 다음 오류가 기록됩니다.
2021-04-07 15:26:28 0 [ERROR] mysqld: File './mysql-bin.index' not found (Errcode: 30 "Read-only file system")
2021-04-07 15:26:28 0 [ERROR] Aborting
내가 본 일반적인 해결책은 apparmor에 대한 별칭을 추가하는 것이었지만 자세히 살펴보면 apparmor의 MariaDB 구성 파일이 비어 있고 apparmor가 더 이상 mariadb에 대한 권한을 추적하지 않는다는 설명이 있습니다. 이는 매우 적은 가치를 제공하지만 mariadb를 제공하기 때문입니다. 사용자가 질문(또는 유사한 질문)을 가져왔습니다. 변화는 도움이 되지 않았지만 그것은 내 문제가 아니라는 것을 보여주었습니다.
권한을 계속해서 다시 확인하고 심지어 권한을 강화하고 완화해 보았지만 결과는 동일했습니다.
이제 드라이브가 기존 파티셔닝으로 포맷되지 않았기 때문에 mariadb가 이런 방식으로 포맷된 드라이브에서 시작되지 않고 읽기 전용으로 처리되지 않을까 걱정됩니다. 다음 lsblk에 표시된 것처럼 시스템은 이를 읽기 전용으로 처리하지 않습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 75G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 58.5G 0 part /
├─sda3 8:3 0 16G 0 part [SWAP]
└─sda4 8:4 0 1007.5K 0 part
sdb 8:16 0 1T 0 disk /usr/www1
sr0 11:0 1 14.1M 0 rom
mariadb가 다른 방법을 사용하여 부팅할 파일 시스템을 확인하고 읽기 전용으로 잘못 해석할 가능성이 있습니까? mariadb와 함께 사용하려면 이 드라이브를 파티션으로 다시 구축해야 합니까?
요청된 정보를 추가하려면 편집하세요.
마운트를 위한 /etc/fstab 항목:
/dev/sdb /usr/www1 ext3 defaults,errors=remount-ro 0 1
이 파일 시스템은 올해 이미 apache2에서 작동하고 엄청난 수의 페이지를 제공하므로 대부분의 소프트웨어는 이를 읽기 전용으로 처리하지 않는 것 같습니다. 포맷된 방식은 완전히 우연이었습니다. 저는 이 서버를 설치하기 전에는 Linux에 대한 경험이 없었으며 확실히 USB 드라이브용 레시피를 따랐습니다.
의류 로그에는 정상적인 항목이 있지만 DENIED 메시지는 없습니다. 항상 표준이어야 하는 리디렉션에 대한 5개의 메시지로 시작됩니다. 시스템 로그에 있습니다.
답변1
이 질문에 직접 답하고 있으므로 이 솔루션의 변형에 대한 문서가 있을 것입니다. 이 문제에 대한 해결책은 사람들이 mariadb를 /home으로 이동할 때 시작할 수 없다는 점을 제외하고 웹상의 모든 예와 매우 유사하다는 것이 밝혀졌습니다.
Debian 10에서 systemd는 디렉토리에 /usr을 포함합니다. 설계상 웹사이트에서 mariadb를 사용하는 경우 /usr 외부에서 실행할 수 없습니다. 이를 수정하려면 sudo를 사용하십시오.
vi /etc/systemd/system/multi-user.target.wants/mariadb.service
/ProtectSystem=full
s/full/false/
ZZ
systemctl daemon-reload
systemctl start mariadb
업데이트할 때마다 이 작업을 반복해야 하는지 잘 모르겠으므로 패치를 적용할 때 주의하세요.