운영체제/Linux

[Linux 실습] MariaDB 기본 디렉터리 변경 및 데이터베이스 생성해 연동 확인

gamjadori 2024. 8. 15. 15:40
728x90

[Linux 실습] MariaDB 기본 디렉터리 변경 및 데이터베이스 생성해 연동 확인

 

1. 기본 데이터 디렉토리 /DATA(추가 스토리지로 경로 변경)

  • MariaDB systemctl stop으로 서비스 중지 후 진행

a. 기존에 설정된 디렉토리 경로 확인

mysql -u root -p로 MariaDB에 접속
SHOW VARIABLES LIKE 'datadir';로 경로 확인

>> 기본 디렉터리가 /var/lib/mysqld임을 확인 

b. 이동할 디렉토리 생성 (mkrid /DATA) 후 동기화

동기화 명령어: rsync -av /var/lib/mysql/ /DATA

  • rsync란? 네트워크를 통해서 로컬 서버와 원격 서버 간 데이터 동기화

>> cp와 rsync의 차이: rsync 는 변경된 파일에 대해서만 업로드 / cp 는 무조건 업로드를 하는 방식 (동일한 파일이 업로드 되어 있더라도, 다시 업로드를 진행)

  • /DATA와 /var/lib/mysql/을 비교했을 때, 내용이 같음을 확인

c. vi /etc/my.cnf.d/server.cnf로 기본 디렉터리 지정

[mysqld]
data=/DATA (기본 디렉터리로 추가할 경로 입력)

d. MariaDB가 /root /home 디렉토리 접근 허용

  • vi /usr/lib/systemd/system/mariadb.service
  • /usr/lib/systemd/system/mariadb.service: systemd가 MariaDB 서버를 관리하는 방법을 정의하는 폴더
  • ProtectHome=true를 false로 변경

e. chown mysql:mysql /DATA으로 기본 디렉터리 권한 설정

  • MariaDB는 기본적으로 mysql 사용자와 그룹으로 실행되기 때문에 데이터 디렉터리와 그 안의 파일들에 대해 소유권과 권한을 설정해야 MariaDB가 정상적으로 데이터를 읽고 쓸 수 있음.

f. MariaDB 구동 (systemctl start mariadb)

  • 서비스 구성 파일 수정하면 꼭 리로드해야 함. 그렇지 않고 systemctl start mariadb 했을 시에는 Warning 문구 나옴
systemctl start mariadb
Warning: The unit file, source configuration file or drop-ins of mariadb.service changed on disk. Run 'systemctl daemon-reload' to reload units.
systemctl daemon-reload
systemctl start mariadb

 

** MariaDB가 구동되지 않음 (문제)

systemstl daemon-reload를 하지 않고 start를 해 MaraiDB가 제대로 실행되지 않음. start 작업 종료 후 sudo kill를 이용해 MariaDB를 강제 종료한 후 데몬 리로드부터 다시 진행하였음.

<결과 확인>

mysql -u root -p로 MariaDB에 접속
select @@datadir;로 경로 확인

 

 

2. [본인 이니셜 db]로 데이터베이스 생성 후 확인

CREATE DATABASE sechoidb;
SHOW DATABASES;

  • 변경한 기본 디렉터리에도 데이터베이스 생성되는지 확인 (ls /DATA)