MySQL datadir 변경

minstone·2022년 7월 14일
0
post-thumbnail

환경

centos7의 기본 repository로 MySQL8.0 소스설치가 제한됨. cmake, gcc, glibc …등등 관련 패키지, 프로그램을 별도로 설치해야 하며 사내 다른 서버에 MySQL8.0 구성 시 매번 설치해줘야 함.

따라서 MySQL8.0 패키지설치 진행 후 설정파일 적용하기로 함.



datadir 변경 중 발생 한 이슈

  • initialize 실패
  • 변경된 datadir(/home/service/mysql/*) 접근불가하여 데몬구동 실패 


원인 및 해결

mysql.server파일 수정

  • 회사에서는 group을 dba로 생성하여 사용 중.
  • default로 설정된 mysql에서 dba로 그룹 변경, systemctl 갱신
[root@pc-db7-dd01 /]# vi /usr/lib/systemd/system/mysqld.service
 
     36 [Service]
     37 User=mysql
     38 Group=dba
 
[root@pc-db7-dd01 /]# systemctl daemon-reload
  • datadir의 상위디렉터리까지 755권한을 필요로 함.
  • 해당 서버는 home디렉터리의 권한이 711로 권한이 부족했음.
chmod 755 /home/
chmod 755 /home/service

SElinux 설정

  • semanage관련 패키지 설치 후 datadir 경로 selinux에 등록
yum install policycoreutils-python
semanage fcontext -a -t mysqld_db_t "/home/service/mysql(/.*)?"
restorecon -R /home/service/mysql

SElinux?  

관리자가 시스템 액세스 권한을 효과적으로 제어할 수 있게 하는 Linux시스템용 보안 아키텍처. 이는 원래 미국 국가안보국(United States National Security Agency, NSA)이 LSM(Linux Security Module)을 사용하여 Linux 커널에 대한 일련의 패치로 개발한 것

profile
🌚Stone Kid

0개의 댓글