MariaDb 10/ MySQL 8 - data 디렉토리 변경 (Ubuntu)

data 폴더 위치를 변경해 이동한다.

  • 여기서는 MariaDB 를 사용하고 있다.
  • rsync 를 사용해서 복사한다.

위치 이동

my.cnf 에 있는 기본 디렉토리를 /data 폴더로 변경하고 적용한다.

  1. 기본 data 디레토리 확인

my.cnf 에서 datadir 로 지정된 항목을 찾아 보자.

1
2
~$ grep datadir /etc/mysql/mariadb.conf.d/*
/etc/mysql/mariadb.conf.d/50-server.cnf:#datadir = /var/lib/mysql

기본으로 Ubuntu 종류에서는 /var/lib/mysql 를 기본 데이터 디렉토리로 지정하고 있다.

  1. data 디렉토리를 /data 로 변경한다.

my.cnf 를 수정해서 /data로 변경하자

1
~$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
  1. data 폴더 권한

mysqld / mariadbd 데몬은 mysql 사용자, mysql 그룹으로 사용권이 실행되고 있다. 데이터베이스에서 접근하는 모든 자원(폴더, 파일, 로그 등등)은 mysql 사용자로 접근이 가는해야 한다. 그래서 /data 디렉토리 권한을 변경한다.

mysql 사용자와 그룹 확인한다.

1
2
3
4
5
$ grep mysql /etc/passwd
mysql:x:111:117:MySQL Server,,,:/nonexistent:/bin/false

$ grep mysql /etc/group
mysql:x:117:

소유권을 mysql 사용자로 변경한다.

1
2
3
4
5
$ sudo chown -R mysql:mysql /data
[sudo] 암호:
$ ls -al /data
drwxr-xr-x 3 mysql mysql 4096 5월 6 22:35 .
drwxr-xr-x 20 root root 4096 5월 6 17:15 ..
  1. data 이동

rsync 를 사용해서 /var/lib/mysql 데이터를 /data 아래로 복사한다.

1
$ sudo rsync -avzph /var/lib/mysql/ /data/
  1. mysqld 데몬을 재시작하고 확인한다.
1
2
3
4
$ sudo systemctl restart mysql
$ sudo systemctl status mysql

● mariadb.service - MariaDB 10.11.2 database server

데이터베이스에 접속해 데이터를 확인해 보자. @@datadir 환경변수를 출력해서 /data 가 출력되면 my.cnf 의 설정이 잘 구성된 상태를 확인할 수 있다.

1
2
3
4
5
6
7
8
$ mysql -u root -p

> select @@datadir;
+-----------+
| @@datadir |
+-----------+
| /data/ |
+-----------+

rsync 로 복사한 실제 데이터들은 각 스키마에서 확인해 보자.

Issue Open
1. github에서 issue open: assign등등 세부사항 settting.
Branch에서 작업후 commit/push
1. 코드를 최신 버전 상태로 만들기 : master pull
2. branch 생성 : branch naming은 이름 + issue번호. (예: sangrimShin#13)
3. 생성된 branch위에서 코드 수정 (master에서 수정금지)
4. branch를 commit/push. (comment는 자세히 작성. issue번호 추가)
5. github에서 pull request.
Merge
1. pull request가 모이면 merge request를 하고 merge
2. 모든 branch가 master에 merge가 되었음을 공지
검증
1. 개발자들은 master를 pull
2. 자신의 코드가 잘 merge되었는지 확인
Release
1. merge가 잘 되었으면 release. (version up/tagging)
• © 2022 GitHub, Inc.
• Terms
• Privacy
• Security
• Status
• Docs

출처: https://github.com/srshin/github/wiki/git%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-%EA%B0%9C%EB%B0%9C-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4