[MySQL] Ubuntu에서 데이터 디렉토리 변경
- Databases/MySQL
- 2021. 7. 3.
Ubuntu에서 MySQL을 deb패키지로 설치하면 데이터가 저장되는 datadir에 특수한 설정이 자리잡게 됩니다.
바로 apparmor란 것인데 말 그대로 특정 앱에 대해 방어를 하는 목적으로 만들어진 것입니다. 즉 보안성을 높인 기능이라 할 수 있습니다.
좋으면 좋고 귀찮으면 귀찮은 기능입니다. 구글로 검색하면 주로 사용하지 않는 방법이 더 많이 검색되는것을 보면 말이죠.
여기에서는 Ubuntu에서 데이터 디렉토를 바꾸는 방법을 알아봅니다.
기본적으로 아래 환경 설정은 MySQL서버를 내리고 진행합니다.
shell> systemctl stop mysqld
■ datadir을 apparmor에 추가하는 방법
다음위치의 파일을 편집하여 신규 datadir을 추가하는 방법입니다.
1. apparmor mysqld수정
shell> vi /etc/apparmor.d/usr.sbin.mysqld
이 파일을 열어보면 #으로 여러 섹션이 나누어져 있습니다. 섹션들을 천천히 보면 알겠지만 MySQL에서 필요한 각 파일이나 정보들이 특수한 권한으로 설정되어 있는것을 확인할 수 있습니다.
이 섹션들중 # Allow data dir access라는 섹션이 있습니다. 기존 내용을 보면
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
으로 되어 있습니다. 이것을 원하는 디렉토리로 바꾸어 줍니다. 에를 들어 원하는 디렉토리가 /mydata/mysql 이라면
/mydata/mysql/ r,
/mydata/mysql/** rwk,
변경합니다.
2. MySQL 환경변수의 datadir 변경
datadir의 경로를 변경합니다.
shell> vi /etc/mysql/mysql.conf.d/mysqld.cnf
datadir = /mydata/mysql
3. 추가 파일 편집
아래 경로에서 mysql파일의 내용을 수정합니다.
vi /etc/apparmor.d/abstractions/mysql
첫 줄의 /var/lib/mysql{,d}/mysql{,d}.sock rw, 를 아래와 같이 수정.
/mydata/mysql{,d}/mysql{,d}.sock rw,
4. apparmor 재시작
shell> /etc/init.d/apparmor reload
shell> systemctl start mysql
■ apparmor에서 mysqld만 제외하는 방법
가장 쉬운 방법입니다. apparmor utility를 이용해서 MySQL에 걸려있는 apparmor를 비활성화 합니다.
아래 패키지를 다운로드 합니다.
그리고 aa-disable 명령어로 MySQL관련 apparmor를 비활성화 합니다.
그리고 상태를 확인합니다.
shell> apt install apparmor-utils
shell> aa-disable mysqld
shell> aa-status | grep mysqld
다시 활성화 하고 싶다면 아래와 같이 합니다.
shell> aa-enforce /etc/apparmor.d/usr.sbin.mysqld
※도움이 되셨다면 광고클릭 한번 부탁드립니다.※
'Databases > MySQL' 카테고리의 다른 글
[MySQL] Memory 모니터링 (1) | 2021.07.18 |
---|---|
[MySQL] events_statements_summary_by_digest를 이용하여 SQL성능 분석 (0) | 2021.07.10 |
[MySQL] 페이지 압축과 테이블 압축의 비교 (0) | 2021.07.03 |
[MySQL] Network 및 Replication 파라미터(MySQL 5.6기준) (0) | 2021.06.20 |
[MySQL] Definer와 SQL Security 옵션 (0) | 2021.06.03 |