mariadb 서버를 설치하고 다음과 같은 비밀번호로 루트 사용자를 생성했습니다.
sudo apt install mariadb-server
sudo mysql_secure_installation
Rasperri Pi를 사용하기 때문에 DB를 외장 하드 디스크로 바꾸고 싶습니다. 이를 위해 나는 취했다이 튜토리얼
cnf 파일(모두 /etc/mysql/mariadb.conf/ 및 /etc/mysql 아래의 debian.cnf 파일)을 변경한 후 mysql 서비스 시작이 실패합니다.
$ sudo service mysql start
Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
로그에는 테스트 파일을 생성할 수 없다고 나와 있습니다.
$systemctl status mariadb.service
Okt 30 22:56:31 raspberrypitouch systemd[1]: Starting MariaDB 10.3.31 database server...
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: 2021-10-30 22:56:31 0 [Note] /usr/sbin/mysqld (mysqld 10.3.31-MariaDB-0+deb10u1) starting as process 4694 ...
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: 2021-10-30 22:56:31 0 [Warning] Can't create test file /media/pi/DBDRIVE/MariaDB/raspberrypitouch.lower-test
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: [101B blob data]
Okt 30 22:56:31 raspberrypitouch mysqld[4694]: 2021-10-30 22:56:31 0 [ERROR] Aborting
Okt 30 22:56:31 raspberrypitouch systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
Okt 30 22:56:31 raspberrypitouch systemd[1]: mariadb.service: Failed with result 'exit-code'.
Okt 30 22:56:31 raspberrypitouch systemd[1]: Failed to start MariaDB 10.3.31 database server.
광범위한 검색 끝에 다음과 같은 가능한 원인을 찾아 배제했습니다.
의류그리고SELinux새 디렉터리에 대한 액세스를 차단하고 있습니다. -> 설치되지 않았습니다.
getenforce -bash: getenforce: command not found
그리고
aa-status -bash: aa-status: command not found
-
모든 경로를 복사했는데 오타가 있으면 이틀 동안 바쁜 이유가 될 수 없습니다.
-
이것을 복사했으므로 권한이 정확해야 합니다.
cp -R -p /var/lib/mysql/* /media/pi/DBDRIVE/MariaDB/
상위 폴더
/media/pi/DBDRIVE $ ls -l total 20 drwx------ 2 mysql mysql 16384 Oct 29 12:25 lost+found drwxrwxrwx 6 mysql mysql 4096 Oct 30 23:07 MariaDB
db 폴더 자체
/media/pi/DBDRIVE/MariaDB $ ls -l total 110632 -rw-rw---- 1 mysql mysql 16384 Oct 30 15:30 aria_log.00000001 -rw-rw---- 1 mysql mysql 52 Oct 30 15:30 aria_log_control -rw-r--r-- 1 root root 0 Oct 30 13:02 debian-10.3.flag -rw-rw---- 1 mysql mysql 976 Oct 30 15:30 ib_buffer_pool -rw-rw---- 1 mysql mysql 12582912 Oct 30 15:30 ibdata1 -rw-rw---- 1 mysql mysql 50331648 Oct 30 15:30 ib_logfile0 -rw-rw---- 1 mysql mysql 50331648 Oct 30 13:02 ib_logfile1 -rw-rw---- 1 mysql mysql 0 Oct 30 13:02 multi-master.info drwx------ 2 mysql mysql 4096 Oct 30 13:02 mysql drwxrwxrwx 2 mysql mysql 4096 Oct 30 17:50 mysqld drwx------ 2 mysql mysql 4096 Oct 30 13:02 performance_schema drwx------ 2 mysql mysql 4096 Oct 30 15:12 testDB
운전
/media/pi/DBDRIVE $ ls -l total 20 drwx------ 2 mysql mysql 16384 Oct 29 12:25 lost+found drwxrwxrwx 7 mysql mysql 4096 Oct 30 23:58 MariaDB
파이
/media/pi $ ls -l total 4 drwxr-xr-x 4 mysql mysql 4096 Oct 30 16:53 DBDRIVE
미디어
/media $ ls -l total 4 drwxr-x---+ 3 root root 4096 Oct 31 01:42 pi
-
df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/root ext4 29G 3.8G 25G 14% / devtmpfs devtmpfs 776M 0 776M 0% /dev tmpfs tmpfs 937M 0 937M 0% /dev/shm tmpfs tmpfs 937M 8.6M 928M 1% /run tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs tmpfs 937M 0 937M 0% /sys/fs/cgroup /dev/mmcblk0p1 vfat 253M 49M 204M 20% /boot tmpfs tmpfs 188M 4.0K 188M 1% /run/user/1000 /dev/sda ext4 916G 186M 870G 1% /media/pi/DBDRIVE
-
여기기본적으로 같은 경우이지만 솔루션이 작동하지 않습니다.
올바른 방향에 대한 모든 힌트를 높이 평가합니다
왜 서비스를 시작할 수 없나요?
답변1
의견에 언급된 대로 문제는 를 실행하여 수동으로 재현할 수 있습니다 sudo -u mysql touch /media/pi/DBDRIVE/MariaDB/raspberrypitouch.lower-test
. 이로 인해 '권한 거부' 오류가 발생했습니다.
질문에서 'MariaDB' 디렉토리는 'mysql' 사용자가 완전히 소유하고 있음을 보여주므로 문제는 '/media', '/media/pi', & '/media/' 등 상위 디렉토리 중 하나에 있을 가능성이 높습니다. 파이/DBDRIVE'. 이러한 디렉토리에는 'mysql' 사용자가 '/media/pi/DBDRIVE/MariaDB/' 디렉토리에 액세스할 수 있도록 최소한 모든 사용자에 대한 실행 권한이 필요합니다.
OP는 /media 디렉터리에 필수 권한이 누락되었으며 이를 추가하면 문제가 해결되었음을 확인했습니다.
MariaDB 지식 베이스의 관련 참고 사항:https://mariadb.com/kb/en/what-to-do-if-mariadb-doesnt-start/#cant-create-test-file