IT/MySQL

MySQL 8 신규 데이터 디렉토리 초기화 설정하기

SEON'S 2023. 3. 30. 21:18
728x90

MySQL 8 신규 데이터 디렉토리 초기화 설정하기

  MySQL 8데이터베이스 사용시 신규 디렉토리를 생성하여 신규 데이터베이스를 구축 해야할 경우가 있습니다. 이때 selinuxdisabled 상태라면 Initialize 실행후 바로 실행이 되겠으나, selinux를 사용한다면 context 추가작업이 필요합니다여기서는 SELinux 가 enforce 상태로 신규 데이터 디렉토리를 초기화 하는 방법을 확인해보겠습니다.

 

  • MySQL selinux context 확인
  • MySQL 종료
  • 신규 디렉토리 생성 및 Initialize
  • my.cnf 수정
  • selinux context 추가
  • MySQL 실행
  • 임시패스워드 확인
  • 테스트

 

MySQL selinux context 확인

다를 이유는 없지만 MySQL 데이터 디렉토리의 SELinux context 를 확인합니다.

ls -ldZ /var/lib/mysql

SELinux context 확인

 

MySQL 종료

신규데이터 디렉토리 생성을 위해 운영중인 MySQL은 종료합니다.

systemctl stop mysqld

 

신규 디렉토리 생성 Initialize

신규디렉토리(/DATA/new_mysql_data)를 mkdir 명령어로 생성합니다.

mkdir -p /DATA/new_mysql_data

데이터 디렉토리 생성 화면

생성한 디렉토리의 소유권을 그룹과 계정 둘다 mysql로 변경합니다.

chown -R mysql.mysql /DATA/new_mysql_data

소유권 변경화면

데이터 디렉토리 초기화

MySQL 8 버젼부터는 mysql_install_db 명령어는 제거되어 mysqld 명령어를 통해 초기화 합니다

mysqld --initialize --datadir=/DATA/new_mysql_data --user=mysql

데이터 디렉토리 초기화 실행 화면

데이터 디렉토리 초기화 결과 아래와 같이 데이터 폴더에 MySQL 기초데이터가 생성됩니다.

데이터 디렉토리 초기화 결과 화면

my.cnf 데이터 디렉토리 경로수정

편집기로 /etc/my.cnf 파일을 수정합니다.

vi /etc/my.cnf

아래내용과 같이 수정 또는 추가합니다.

[mysqld]
datadir=/DATA/new_mysql_data
socket=/DATA/new_mysql_data/mysql.sock

#-- client 없다면 추가
[client]
socket=/DATA/new_mysql_data/mysql.sock

SELinux context 추가

semanage fcontext -a -t mysqld_db_t "/DATA/new_mysql_data(/.*)?"

semanage 실행화면

매핑 context re-label 실행

restorecon -R -v /DATA/new_mysql_data

MySQL 실행

systemctl start mysqld

임시패스워드 확인

grep 'temporary password' /var/log/mysqld.log

임시패스워드 확인 화면

MySQL 재기동

systemctl restart mysqld

mysql 재기동 화면

테스트

테스트를 위해 임시패스워드로 로그인 합니다.

mysql -u root -p

임시패스워드로 로그인

임시 패스워드를 변경합니다.

ALTER USER 'root'@'localhost' IDENTIFIED BY '<Password>'

패스워드 변경화면

테스트할 명령어를 실행합니다.

show databases;

테스트 화면

select version();

테스트 화면 2번

테스트 명령어가 정상적으로 실행되었다면 신규 데이터 베이스 구축이 잘 완료된것입니다.

 

 

도움이되셨다면 공감 / 구독 부탁드립니다.

 

감사합니다.

 

MySQL 데이터 위치이동이 궁금하시면 아래 링크를 확인하세요

2023.03.30 - [IT/MySQL] - MySQL 8 DATA 위치 이동하기

 

MySQL 8 DATA 위치 이동하기

MySQL 8 DATA 위치이동(경로변경) 방법 MySQL 데이터베이스를 사용하다보면 디스크 공간부족 등 다양한 이유로 기본경로에서 다른 경로로 이동해야하는 경우가 발생합니다. 이때 SELinux가 disabled 라면

blife.tistory.com

 

반응형