MySQL 8 신규 데이터 디렉토리 초기화 설정하기
MySQL 8데이터베이스 사용시 신규 디렉토리를 생성하여 신규 데이터베이스를 구축 해야할 경우가 있습니다. 이때 selinux가 disabled 상태라면 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
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(/.*)?"
매핑 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 -u root -p
임시 패스워드를 변경합니다.
ALTER USER 'root'@'localhost' IDENTIFIED BY '<Password>'
테스트할 명령어를 실행합니다.
show databases;
select version();
테스트 명령어가 정상적으로 실행되었다면 신규 데이터 베이스 구축이 잘 완료된것입니다.
도움이되셨다면 공감 / 구독 부탁드립니다.
감사합니다.
MySQL 데이터 위치이동이 궁금하시면 아래 링크를 확인하세요
2023.03.30 - [IT/MySQL] - MySQL 8 DATA 위치 이동하기
'IT > MySQL' 카테고리의 다른 글
MySQL 8 DATA 위치 이동하기 (0) | 2023.03.30 |
---|---|
MySQL 8 외부(원격) 접속 설정하기 (0) | 2023.03.28 |
MySQL 설치 후 바로 사용하기 위한 빠른 기초 설정 (0) | 2023.03.28 |
Rocky Linux 8에 MySQL 8 설치해봅시다 (0) | 2023.03.27 |