2023. 4. 29. 02:22ㆍ리눅스 실제 사용 팁/Maria DB
1. 바이너리 배포판(tarball - tar.gz, tgz, tar.bz2, tbz, tar.Z, ...) 을 다운로드한다.
2. 적당한 위치에 압축을 푼다. (INSTALL-BINARY 문서에서는 /usr/local/ 밑에 설치할 것을 권한다. that's linux way~)
$ cd /usr/local
---
(설명: /usr/local 밑에 설치한다.)
$ sudo tar xzf (다운로드한 경로)/mariadb-10.11.2-linux-systemd-x86_64.tar.gz
$ sudo mv mariadb-10.11.2-linux-systemd-x86_64 mariadb
---
(설명: 생성된 디렉토리명을 짧게 mariadb 로 변경한다)
압축을 풀면 아래와 같이 구성되어 있다. 아무래도 mysql 에서 파생된 프로젝트이다 보니 디렉토리 이름에 'mysql' 이 들어 있다.
(bin/ 아래에도 실행바이너리가 'mysql*' 에서 쓰이는 명칭으로 심볼릭링크가 만들어져 있다.)
본 게시글에서는 mysql 을 mariadb 으로 대체한다.
왜냐하면 내가 설치한 DB 는 mysql 이 아니고 mariadb 이기 때문이다.
(둘이 비슷하다고 한들, 내가 원하는 건 mariadb 니까)
↑ 저렇게 외치고 무작정 죄다 바꿨는데.., 실행스크립트에서도 바꿔야 할 부분이 남아 있다.
(안고쳐도 문제가 되진 않는다. 단지 오류 메시지가 떠서 찝찝할 뿐)
예를 들면, bin/ 아래의 mariadbd-safe 파일이 쉘스크립트다. 여기서 chown mysql 을 실행하기 때문에 mysql 계정이 없으면 chown 오류가 뜬다.
$ sudo ./bin/mariadbd-safe --user=mariadb
[sudo] user 암호:
230430 08:39:01 mysqld_safe Logging to '/home/user/__Applications/mariadb/data/jhiz.err'.
chown: 부적절한 그룹: `mariadb:mysql'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 요것 때문에
vi 편집기에서
:%s/'mysql'/'mariadb'/gc
으로 'mysql' 를 'mariadb' 로 고쳐준다.
그리고 '/usr/local/mysql' 로 되어 있는 부분을 본인이 설치한 경로로 고친다.
있는대로 쓸 걸... 괜히 고집부리려다 뻘짓하는 건가? ;-(
COPYING
CREDITS
INSTALL-BINARY <-------- 본 게시글의 기본은 여기서 가져왔다. 설치문서
README-wsrep
README.md
THIRDPARTY
bin/
data/
docs/
include/
lib/
man/
mysql-test/
scripts/
share/
sql-bench/
support-files/
3. mariadb 그룹과 서비스 전용계정을 생성한다.
$ sudo groupadd mariadb
---
(결과) /etc/group 파일에 mariadb 그룹이 추가된다.
$ sudo useradd --system -g mariadb mariadb
---
(결과 1) /etc/passwd 파일에 mariadb 계정이 추가되며
(결과 2) /etc/passwd 파일에서 mariadb 계정행 맨 뒤에 (서비스 계정으로서) mariadb 이 추가된다.
---< 확인용 >---
$ grep mariadb /etc/group
mariadb:x:1002:
$ grep mariadb /etc/passwd
mariadb:x:999:1002::/home/mariadb:/bin/sh
---
(설명: '--system' 때문에 /home 밑에 계정디렉토리가 안생기는데 설정파일에는 들어간다.
일부러 '--no-create-home' 도 시도해봤는데 여전하더라. 커맨드 버그일까?)
4. mariadb 디렉토리 아래의 전체 리소스의 계정 소유권과 그룹을 앞서 만든 mariadb 으로 변경한다.
$ cd mariadb
---
반드시 mariadb 디렉토리로 이동해야 한다.
왜냐하면 scripts/ 밑의 설치 스크립트에서 현재 작업경로에 data (<- DB 저장소) 를 설치하기 때문이다.
$ sudo chown -R mariadb:mariadb mariadb
---
맨뒤의 mariadb 은 디렉토리 이름이다. 헷갈리지 않길!
다음 명령들의 축약형이다 :
문서에는 이렇게 쓰여 있다.
chown -R mariadb .
chgrp -R mariadb .
5. 설치 스크립트를 실행한다.
$ sudo ./scripts/mariadb-install-db --user=mariadb
---
(결과)
현재 작업디렉토리 밑에 'data' 디렉토리를 생성한다. 여기에 각종 시스템 테이블이 들어간다.
대부분의 리눅스 배포판의 패키지에서 처리하는 부분이겠다. support-files 안에 들어있는
mariadb.service 파일을 적절한 위치에 설치하면 시스템 부팅 시 서비스로 자동실행된다(고 한다).
전권을 가진 계정 2개가 생성되는데 1개는 root@localhost 인데 패스워드가 설정되지 않은 상태로
제공된다. `sudo mariadb` 로 Maria DB 를 실행할 때 쓰일 수 있단다.
다른 1개는 mariadb@localhost 이며 이것 역시도 패스워드를 설정하지 않은 채로 제공되며
mariadb 계정으로 접속할 때 쓸 수 있다. 접속한 후에 패스워드를 설정하면 `sudo ` 를 통하지 않고도
로그인할 수 있단다. (근데 그게 그것 아닌가? 음... 우분투는 그렇겠지....)
https://mariadb.com/kb (Maria DB 에 관한 문서를 여기서 참고하기 바란다)
DB 저장소를 기본값이 아닌 다른 곳에 설치한 경우? --datadir='저장소 경로' 을 통해
DB 를 시작할 수 있다.
예) /usr/local/mariadb/bin/mariadbd-safe --datadir='/home/test/DB_DATA'
bin/mariadb-test 명령으로 DB 를 테스트할 수 있단다.
6. mariadb 디렉토리 안 리소스들의 소유권을 root 로 전환한다.
$ sudo chown root .
---
(설명) mariadb 디렉토리를 root 소유권에 넣음으로써 일반 사용자 계정에서 망가뜨리지 못하게 한다.
7. mariadb 디렉토리 안의 data 디렉토리만 mariadb 소유권으로 전환한다.
$ sudo chown -R mariadb ./data
---
(설명) data 디렉토리만 별도로 소유권을 mysql 로 지정한다.
설치 끝!
참고할만한 리소스)
시스템에 서비스로 등록하려는 경우 supported-files 에 있는 파일을 참고하면 된다.
$ tree supported-files
supported-files
├── binary-configure
├── magic
├── mariadb.logrotate
├── mini-benchmark
├── mysql.server
├── mysqld_multi.server
├── policy
│ ├── apparmor
│ │ ├── README
│ │ ├── usr.sbin.mysqld
│ │ └── usr.sbin.mysqld.local
│ └── selinux
│ ├── README
│ ├── mariadb-server.fc
│ ├── mariadb-server.te
│ ├── mariadb.pp
│ └── mariadb.te
├── systemd
│ ├── mariadb-extra@.socket
│ ├── mariadb.service
│ ├── mariadb@.service
│ ├── mariadb@.socket
│ ├── mysql.service -> ./mariadb.service
│ ├── mysqld.service -> ./mariadb.service
│ └── use_galera_new_cluster.conf
├── wsrep.cnf
└── wsrep_notify
5 directories, 23 files
실행 방법)
$ sudo ./bin/mariadbd-safe --user=mariadb &
---
경로 밖에서 실행하는 경우라면 경로를 모두 지정하면 되겠다. 이렇게 :
$ sudo /usr/local/mariadb/bin/mariadbd-safe --user=mariadb &
'리눅스 실제 사용 팁 > Maria DB' 카테고리의 다른 글
[MariaDB/MySQL] 현재 접속계정 조회 및 패스워드 변경하기 (0) | 2023.04.30 |
---|---|
[MariaDB/MySQL] 로컬호스트 접속 오류 #2 (0) | 2023.04.30 |
[MariaDB/MySQL] 로컬호스트 접속 오류 #1 (0) | 2023.04.30 |