본문 바로가기

Linux Server

[Linux] Ubuntu MySQL 8.0 데이터 저장소 변경

테스트 환경

NCP 리눅스 서버 1대 생성

OS : Ubuntu 20.04

DB : MySQL 8.0

 

1) mysqld.cnf 수정

vi /etc/mysql/mysql.conf.d/mysqld.cnf

-아래 내용 참고하여 수정-

[mysqld]

#

# * Basic Settings

#

user            = mysql

#pid-file       = /var/run/mysqld/mysqld.pid

pid-file        = /data/mysql/mysqld.pid

#socket         = /var/run/mysqld/mysqld.sock

# port          = 3306

# datadir       = /var/lib/mysql

datadir = /data/mysql

 

2) usr.sbin.mysqld 수정

vi /etc/apparmor.d/usr.sbin.mysqld

-아래 내용 참고하여 수정-

# Allow data dir access

#  /var/lib/mysql/ r,

#  /var/lib/mysql/** rwk,

/data/mysql/ r,

/data/mysql/mysql/** rwk,

 

3) alias 수정

vi /etc/apparmor.d/tunables/alias

# Or if mysql databases are stored in /home:

# alias /var/lib/mysql/ -> /home/mysql/,

 alias /var/lib/mysql/ -> /data/mysql/,

 

cp /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/abstractions/mysql.ori

vi /etc/apparmor.d/abstractions/mysql

-아래 내용 참고하여 수정-

#  /var/lib/mysql{,d}/mysql{,d}.sock rw,

   /data/mysql{,d}/mysql{,d}.sock rw,

   /{var/,}run/mysql{,d}/mysql{,d}.sock rw,

   /usr/share/{mysql,mysql-community-server,mariadb}/charsets/ r,

   /usr/share/{mysql,mysql-community-server,mariadb}/charsets/*.xml r,

 

4) apparmor profile 비활성화

apt install apparmor-utils

aa-status | grep mysql

aa-disable /usr/sbin/mysqld

 

모든 설정 완료 , apparmor profile reload

/etc/init.d/apparmor reload

 

5) MySQL 시작 변경된 저장소 위치 확인

systemctl start mysql

systemctl status mysql

 

mysql -h localhost -u root -p

 

-mysql 접속 후, 데이터 저장소 위치 확인-

 

select @@datadir;

 

이슈사항 정리

3) 까지만 진행한 mysql 서비스 시작시, 아래와 같은 에러 발생 > 4) apparmor profile 비활성화 진행 , 해결