datadir 소유권은 재부팅 후 매번 mysql:mysql로 리셋됩니다.
Manjaro 5.10.23-1에서 MariaDB 10.5.9-1을 사용하고 있습니다.
다음 명령을 사용하여 mariadb 데이터베이스 디렉토리를 초기화했습니다.
$ sudo mariadb-install-db --user=shaouai --basedir=/usr --datadir=/var/lib/mysql
데이터 디렉토리 초기화 후 권한 및 소유권/var/lib/mysql
:
$ ls -ld /var/lib/mysql
drwx------ 5 shaouai root 4096 Apr 10 00:08 mysql
$ ls -lh /var/lib/mysql
total 109M
-rw-rw---- 1 shaouai shaouai 24K Apr 10 00:08 aria_log.00000001
-rw-rw---- 1 shaouai shaouai 52 Apr 10 00:08 aria_log_control
-rw-rw---- 1 shaouai shaouai 972 Apr 10 00:08 ib_buffer_pool
-rw-rw---- 1 shaouai shaouai 12M Apr 10 00:08 ibdata1
-rw-rw---- 1 shaouai shaouai 96M Apr 10 00:08 ib_logfile0
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 mysql
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 performance_schema
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 test
그리고 다른 디렉토리가 하나 더 있습니다./run/mysqld
, 어떤 파일mysqld.sock
는 서버가 가동되고 있을 때 기본적으로 에 상주하며 다음과 같은 권한과 소유권을 가집니다.
$ ls -ld /run/mysqld/
drwxr-xr-x 2 shaouai shaouai 60 Apr 10 08:31 /run/mysqld/
언제가 될지 모르겠다/run/mysqld
서버가 정상적으로 기동했을 가능성이 있습니다.
mysqld_safe --datadir=/var/lib/mysql
서버를 정상적으로 기동할 수 있습니다.
그러나 문제는 재부팅할 때마다 이 서버의 권한과 소유권이/var/lib/mysql
그리고./run/mysqld
으로 리셋되었다.mysql:mysql
:
$ ls -ld /var/lib/mysql
drwx------ 5 mysql mysql 4096 Apr 10 00:08 mysql
$ ls -lh /var/lib/mysql
total 109M
-rw-rw---- 1 shaouai shaouai 24K Apr 10 00:08 aria_log.00000001
-rw-rw---- 1 shaouai shaouai 52 Apr 10 00:08 aria_log_control
-rw-rw---- 1 shaouai shaouai 972 Apr 10 00:08 ib_buffer_pool
-rw-rw---- 1 shaouai shaouai 12M Apr 10 00:08 ibdata1
-rw-rw---- 1 shaouai shaouai 96M Apr 10 00:08 ib_logfile0
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 mysql
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 performance_schema
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 test
$ ls -ld /run/mysqld/
drwxr-xr-x 2 mysql mysql 60 Apr 10 08:31 /run/mysqld/
따라서 다양한 "권한 거부"로 인해 MariaDB 서버를 시작하지 못했습니다.
저와 완전히 똑같은 질문이 하나 있습니다.
의 전체 출력은 다음과 같습니다.systemctl cat mariadb.service
.
왜 사용자를 바꾸셨는지 모르겠습니다.좋은 생각이 아닐 수도 있어요.하지만 그럴 만한 이유가 있다고 가정하면, 당신의 입장을 다음과 같이 설명합니다.
mysqld_safe에 의해 권한이 변경되었을 수 있습니다.테스트를 위해 이 방법으로 시작하는 경우 추가--user=shaouai
논의에 따라 달라지죠.
systemd가 사용자로 기본 시작하도록 허용하려면shaouai
systemctl edit mariadb.service
추가:
[Service]
User=shaouai
Group=shaouai
그 후, 다음과 같이 입력합니다.
chown -R shaouai: /var/lib/mysql /run/mysqld/
그리고나서systemctl restart mariadb.service
.
그러면 기본이 아닌 이 사용자로 서비스가 시작됩니다.mysql
사용자입니다.
언급URL : https://stackoverflow.com/questions/67030085/ownership-of-datadir-is-reset-to-mysqlmysql-after-every-reboot
'programing' 카테고리의 다른 글
if(expr) 대신 if(!(expr) 사용 (0) | 2022.10.22 |
---|---|
Intelij Idea에서 사용되지 않는 모든 클래스를 찾으려면 어떻게 해야 합니까? (0) | 2022.10.22 |
Mac OS X Yosemite/El Capitan에서 MySQL Server 자동 부팅 (0) | 2022.10.22 |
전처리 후 gcc가 C코드를 출력할 수 있습니까? (0) | 2022.10.22 |
Python에서 날짜에 날짜 추가 (0) | 2022.10.22 |