본문 바로가기
IT

ubuntu 16.04 Mysql 데이터 디렉토리 변경 방법

by Oh.mogilalia 2021. 7. 23.

3가지 사항을 고려하면 ubuntu 16.04 Mysql(mariadb) 데이터 디렉토리 변경이 가능합니다. 첫 번째는 데이터 디렉토리를 찾아서 rsync 명령을 이용하여 권한을 그대로 유지하면서 이전하고자 하는 폴더로 복사하는 것입니다. 그리고 이전한 폴더에 대하여 설정을 변경합니다. 마지막으로 이전하고자 하는 폴더에 대하여 리눅스 커널 보안 모듈에 등록하는 겁니다.
rsync 설치 및 설정
Step 1 – Install rsync
Install rsync with apt command

sudo apt-get -y install rsync



Step 2 – Configure rsync daemon
Configure rsync config using nano , it will automatically create file if not exist

sudo nano /etc/rsyncd.conf

[backup]

# destination directory

path = /home/mogibu/backup

# hosts you allow to access, only allow ip 192.168.1.100

hosts allow = 192.168.0.116

# deny all host

hosts deny = *

list = true

# user permission

uid = root

#group permission

gid = root

#can write to this directory

read only = false



Step 3 – Start and enable at booting
After you configure in Step 2 , we will start the rsync daemon and automatically make it start when server boot
Start the daemon

sudo systemctl start rsync



Enable when server boot

sudo systemctl enable rsync



데이터 디렉토리 이전
데이터 디렉토리를 이전하는 것은 다음과 같은 명령을 수행하면 됩니다. 여기서는 /home/mogibu/db/mysql 폴더에 데이터를 이전하는 방법을 다룹니다. 일단 작업 전에 mysql 데몬을 중지시켜야 합니다. 그리고 이전하고자 하는 디렉토리를 생성합니다. 그리고 rsync를 이용하여 권한을 유지한채 폴더를 복사합니다.
ubuntu 16.04 Mysql 데이터 디렉토리 복사 이전

systemctl stop mysql

mkdir /home/mogibu/db 

mkdir /home/mogibu/db/mysql

rsync -av /var/lib/mysql/ /home/mogibu/db/mysql



Mysql 데이터 디렉토리 설정 변경
기본으로 설정되어 있는 /var/lib/mysql/ 폴더가 변경되었으니 그 설정을 변경해 주어야 합니다. vi나 nano 에디터를 이용해서 해당 서버 정보를 수정합니다.


mysql 데이터 디렉토리 변경

nano /etc/mysql/mariadb.conf.d/50-server.cnf

    datadir = /home/mogibu/db/mysql



AppArmor 커널 보안 모듈에 해당 디렉토리 등록
리눅스 버전 2.6.36부터 포함된 기능으로 Application Armor의 약자입니다. ubuntu에는 7.10부터 패키지가 포함되고 Mysql 설정 프로필에 대해서는 ubuntu 9.04부터 가지게 되었습니다. 중요한건 Mysql 이전한 폴더에 대한 프로필을 등록하고 해당 데몬을 재시작해 주면 됩니다. 마지막으로 Mysql 데몬을 다시 기동시켜 주면 됩니다.


AppArmor 커널 보안 모듈에 해당 디렉토리 등록Shell


nano /etc/apparmor.d/tunables/alias

    alias /var/lib/mysql/ -> /home/mogibu/db/mysql/,

systemctl restart apparmor

systemctl start mysql



ubuntu 16.04 Mysql 데이터 디렉토리 변경 방법 요약
1. Mysql 데몬을 정지한다.
2. 이전할 디렉토리를 생성한다.
3. 디렉토리를 rsync를 이용하여 권한을 유지하며서 복사한다.
4. Mysql의 디렉토리 설정을 변경한다.
5. AppArmor의 Mysql에 대한 새로운 디렉토리 정보를 프로필 설정으로 추가한다.
6. AppArmor를 재가동한다.
7. Mysql 데몬을 시작한다.
여기까지 잘 되었다면 Mysql 데이터 디렉토리가 잘 옮겨졌을 겁니다.
최초에 파티셔닝 작업을 할 때에, 용도별로 잘 구분하였다면, 그리고 apt-get이나 yum을 이용해서 default 디렉토리로 설치되었을 경우, 어렵지 않게 옮길수 있습니다. 예를 들어서 SSD와 HDD가 동시에 있을 경우, MySQL의 데이터는 SSD 디렉토리로 옮겨주는 것이 더 좋은 방법이 될 수 있겠습니다.
출처 https://www.studydev.com/development/web-server/ubuntu-16-04-mysql-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EB%B3%80%EA%B2%BD-%EB%B0%A9%EB%B2%95/

'IT' 카테고리의 다른 글

Ubuntu Server 20.04 Nginx+MariaDB+Php 설치 완료  (0) 2021.07.25
ubuntu hdd mount  (0) 2021.07.25
우분투 서버 20.04, Odroi HC2 설치  (0) 2021.07.22
Ubuntu Server Nextcloud 가동  (0) 2021.07.21
Filezilla 한글 설정  (0) 2021.07.18