- 1) 현재 MYSQL 데이터가 어디로 저장되고 있는지 확인한다.
- 2) 데이터를 이전하기 전에 mysql 서버를 중지한다.
- 3) 새롭게 데이터를 저장할 디렉토리를 만든다.
- 4) mysql 서버의 환경설정 파일을 수정한다.
- 5) mariadb는 /root, /home 디렉토리는 접근이 제한을 해제한다.
- 6) daemon-reload를 실행하지 않고 mariadb를 start 실행시키면 daemon-reload를 하라고 메세지가 뜬다.
- 7) 변경된 데이터 디렉토리를 확인한다.
![Ubuntu MySQL(MariaDB) 데이터 저장 위치 변경하기 1 cloud gf6f10a616 640](https://chaehui.kr/wp-content/uploads/2022/06/cloud-gf6f10a616_640.jpg)
Ubuntu MySQL(MariaDB) 데이터 저장 위치 변경하기
1) 현재 MYSQL 데이터가 어디로 저장되고 있는지 확인한다.
$ sudo mysql -uroot
MariaDB [(none)] > select @@datadir;
+———————
| @@datadir |
| /var/lib/mysql/ |
+——————–+
기본 데이터베이스의 위치는 /var/lib/mysql로 되어 있다.
2) 데이터를 이전하기 전에 mysql 서버를 중지한다.
$ sudo systemctl stop mariadb
3) 새롭게 데이터를 저장할 디렉토리를 만든다.
이전 할 디렉토리를 만들고 데이터를 복사한다.
예)복사할 디렉토리는 /home/your_directory/mysqld 라고 한다면.
$ sudo mkdir /home/your_directory/mysqld
$ sudo rsync -av /var/lib/mysql /home/your_directory/mysqld 기존에 데이터를 새로운 디렉토리로 복사한다.
$ sudo chown mysql:mysql /home/your_directory/mysqld -R 디렉토리 소유권을 변경한다.
4) mysql 서버의 환경설정 파일을 수정한다.
$ sudo nano /etc/mysql/mariadb.conf/50-server.conf
#datadir = /var/lib/mysql/
datadir = /home/your_directory/mysqld 로 변경한다.
#socket = /run/mysqld/mysqld.sock
socket = /home/your_directory/mysqld/mysqld.sock 로 변경한다.
$ sudo nano /etc/mysql/mariadb.conf/50-client.conf
#socket = /run/mysqld/mysqld.sock
socket = /home/your_directory/mysqld/mysqld.sock 로 변경한다.
5) mariadb는 /root, /home 디렉토리는 접근이 제한을 해제한다.
아래 파일에서 설정을 false로 해제한다.
$ sudo nano /usr/lib/systemd/system/mariadb.service
#ProtectHome=true
ProtectHome=false
6) daemon-reload를 실행하지 않고 mariadb를 start 실행시키면 daemon-reload를 하라고 메세지가 뜬다.
$ sudo systemctl start mariadb
Warning: mariadb.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.
$ sudo systemctl daemon-reload
$ sudo systemctl start mariadb
7) 변경된 데이터 디렉토리를 확인한다.
$ sudo mysql -uroot -p
MariaDB [(none)] > select @@datadir;
+———————
| @@datadir |
| /home/your_directory/mysqld/ |
+——————–+
기본 데이터베이스의 위치가 /home/your_directory/mysqld/ 로 변경되었다.
Views: 20