Linux에서 기본 MySQL / MariaDB 데이터 디렉토리를 변경하는 방법
CentOS/RHEL 7 서버에 LAMP 스택의 구성 요소를 설치 한 후 수행 할 수있는 몇 가지 작업이 있습니다.
그중 일부는 Apache 및 MySQL/MariaDB의 보안 강화와 관련이있는 반면 다른 일부는 설정이나 요구 사항에 따라 적용 가능하거나 그렇지 않을 수 있습니다.
예를 들어, 예상되는 데이터베이스 서버 사용에 따라 기본 데이터 디렉토리 (/var/lib/mysql
)를 다른 위치로 변경할 수 있습니다. 높은 사용량으로 인해 이러한 디렉토리가 증가 할 것으로 예상되는 경우입니다.
그렇지 않으면 /var
가 저장된 파일 시스템이 한 지점에서 붕괴되어 전체 시스템이 실패 할 수 있습니다. 기본 디렉터리를 변경하는 또 다른 시나리오는 실제 데이터를 저장하는 데 사용할 전용 네트워크 공유가있는 경우입니다.
따라서이 기사에서는 기본 MySQL/MariaDB 데이터 디렉토리를 CentOS/RHEL 7 서버 및 Ubuntu/Debian 배포에서 다른 경로로 변경하는 방법을 설명합니다.
MariaDB를 사용할 것이지만 설명 된 개념과이 문서에서 수행 한 단계는 달리 명시되지 않는 한 MySQL과 MariaDB 모두에 적용됩니다.
기본 MySQL / MariaDB 데이터 디렉토리 변경
참고 : 새 데이터 디렉토리는 /mnt/mysql-data
라고 가정합니다. 이 디렉토리는 mysql : mysql
이 소유해야합니다.
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
귀하의 편의를 위해 프로세스를 따라하기 쉬운 5 단계로 나눴습니다.
시작하려면 다음 명령을 사용하여 현재 데이터 디렉토리를 식별하는 것이 좋습니다. 과거에 변경되었을 수 있으므로 여전히 /var/lib/mysql
이라고 가정하지 마십시오.
# mysql -u root -p -e "SELECT @@datadir;"
MySQL 암호를 입력 한 후 출력은 다음과 유사해야합니다.

데이터 손상을 방지하려면 계속하기 전에 현재 실행중인 서비스를 중지하십시오. 그렇게하려면 잘 알려진 systemd 명령을 사용하십시오.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
서비스가 중단 된 경우 마지막 명령의 출력은 다음과 같아야합니다.

그런 다음 원래 권한과 타임 스탬프를 유지하면서 /var/lib/mysql
의 내용을 /mnt/mysql-data
에 재귀 적으로 복사합니다.
# cp -R -p /var/lib/mysql/* /mnt/mysql-data

새 데이터 디렉터리 (이 경우 /mnt/mysql-data
)를 나타내도록 구성 파일 ( my.cnf
)을 편집합니다.
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
[mysqld]
및 [client]
섹션을 찾아 다음과 같이 변경합니다.
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
변경 사항을 저장하고 다음 단계를 진행합니다.

이 단계는 RHEL/CentOS 및 그 파생 제품에만 적용됩니다.
MariaDB를 다시 시작하기 전에 SELinux 보안 컨텍스트를 /mnt/mysql-data
에 추가하십시오.
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
다음으로 MySQL 서비스를 다시 시작하십시오.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
이제 1 단계와 동일한 명령을 사용하여 새 데이터 디렉토리의 위치를 확인합니다.
# mysql -u root -p -e "SELECT @@datadir;"

MariaDB에 로그인하고 새 데이터베이스를 만든 다음 /mnt/mysql-data
를 확인합니다.
# mysql -u root -p -e "CREATE DATABASE tecmint;"

축하합니다! MySQL 또는 MariaDB의 데이터 디렉토리를 성공적으로 변경했습니다.
이 게시물에서는 CentOS/RHEL 7 및 Ubuntu/Debian 배포에서 실행되는 MySQL 또는 MariaDB 서버에서 데이터 디렉터리를 변경하는 방법에 대해 설명했습니다.
이 기사에 대한 질문이나 의견이 있습니까? 아래 양식을 사용하여 언제든지 알려주십시오. 항상 여러분의 의견을 듣고 싶습니다!