#1. MariaDB 설치하기
1. MariaDB의 개념
1) MariaDB란?
- MariaDB는 MySQL에서 파생된 오픈소스 RDBMS(Relational Database Management System, 관계형 데이터베이스)이다.
- 오라클이 썬마이크로시스템즈를 2010년에 72억 달러(약 8조)에 인수하면서 썬 마이크로시스템즈에 속해 있던 MySQL이 오라클 것이 됨에 따라 상업적으로 MySQL을 이용할 시 사용료를 내도록 정책이 변경되었다.
- 이 정책에 반발한 MySQL 원 개발자의 핵심 창업자 중 한명인 몬티 와이드니어스가 2009년 동료들과 나와 MySQL의 소스코드를 기반으로한 오픈소스 RDBMS를 개발한 것이 지금의 MariaDB이다.
- 즉, MySQL과 MariaDB는 기본적으로 사용방법이 동일하다.
2. DBMS 설치하기
1) 패키지 업데이트
- root권한을 임대하여 업데이트 진행한다. (저장소와 관련된 인덱스를 업데이트)
$ sudo apt-get update
2) 프로그램 설치
- root 권한을 임대하여 mariadb-server를 설치한다.
- 중간에 묻는 질문에 답하기 귀찮을 때는 중간에 -y 명령어를 사용해서 설치한다.
$ sudo apt-get install -y mariadb-server
3) 설치된 버전 확인
- MariaDB지만 명령어들은 MySQL을 그대로 따르고 있다. (아직까지는..)
$ mariadb -V
$ mysql -V
# V는 대문자를 사용한다.
4) MySQL 보안 설정
$ sudo mysql_secure_installation
- MySQL의 현재 root 비밀번호
- 설치 초기 단계이므로 비밀번호가 없다.
- Unix 인증 방식 적용 여부
- MySQL의 root 비밀번호 변경 여부
- 원하는 비밀번호를 입력해준다.
- 익명 사용자 계정 삭제 여부
- 익명사용자라는 것은 비밀번호 없이 로그인 할 수 있는 사용자를 말한다. 보안에 안좋으니 삭제.
- MySQL root의 원격 접속 비활성화
- root에 원격 접속하는 것은 좋지 않기 때문에 비활성화.
- 테스트 데이터베이스 삭제 여부
- 설정 테이블 다시 로드하기
5) MySQL 서비스 시작하기
- 정상적으로 실행될 경우 아무런 결과가 표시되지 않는다.
$ sudo systemctl start mariadb
6) 정상 가동 여부 확인
7) 운영체제 부팅 시 서비스 자동 시작 등록
$ sudo systemctl enable mariadb
8) MySQL 접속 확인하기
$ mysql -uroot -p
3. Database 복구하기
리눅스에서 MySQL에 정상적으로 접속되면 이전에 배운 FTP를 통해 sql 파일을 서버에 업로드하고 데이터베이스 복구 및 사용자 계정 생성을 진행한다.
1) 복구할 데이터베이스 생성
- MySQL에 root 계정으로 접속한 상태에서 myschool 데이터베이스를 생성한다.
CREATE DATABASE myschool default charset utf8;
2) 데이터베이스 복구하기
- exit 명령으로 MySQL과 접속을 해제하고 업로드한 sql 파일을 복원한다.
- 복원할 파일이 FTP를 통해 서버에 업로드 되어 있어야 한다.
$ mysql -uroot -p DATABASE이름 < 백업파일경로
4. 계정 설정
1) 사용자 계정 생성하기
- 데이터베이스까지 복구했으면 MySQL에 root로 로그인 한 후 사용자 계정을 생성한다.
- 보통 아이디는 데이터베이스 이름과 같게 지정한다.
create user '아이디'@'접근허용호스트' identified by '비밀번호';
※ 접근 허용 호스트 구분
호스트 | 설명 |
localhost | 해당 사용자는 반드시 리눅스에 원격 접속을 한 상태에서만 MySQL을 이용 할 수 있다. 즉, MySQL 입장에서 local은 리눅스를 말한다. |
특정 IP주소 | 리눅스로 원격 접속을 거치지 않고 지정된 IP를 사용하는 컴퓨터를 통해서 MySQL에 직접 접속이 가능하다. |
% | 로컬, 원격 구분 없이 어디서나 MySQL에 접속 가능하다. |
- 원격지에서 MySQL로 직접 접속이 가능하도록 지정된 경우, 리눅스에서 MySQL이 사용중인 포트번호에 대한 방화벽을 오픈해줘야 접속이 가능하다.
2) 데이터베이스에 대한 사용자 권한 부여하기
grant all privileges on 데이터베이스이름.* to '아이디'@'접근허용호스트';
- 데이터베이스의 모든 테이블 (.*)을 허용
3) 데이터베이스에 대한 사용자 권한 제거하기
- 사용할 일은 드물지만 사용자 권한을 제거하려면 아래의 명령을 사용한다.
revoke all on 데이터베이스이름.* from '아이디'@'접근허용호스트';
4) 생성된 계정으로 MySQL 로그인
- exit 명령어로 MySQL에서 나온 뒤, 새로 생성한 myschool 아이디를 사용해 MySQL에 접속한다.
5. MySQL 외부접속 설정
1) 포트번호 변경
- 일반적인 실무 시스템에서는 보안상의 이유로 MySQL의 외부접속을 허용하지 않는다.
- 기본 포트는 일반적으로 알려져 있기 때문에 보안에 불리하므로 임의의 포트로 변경해야한다.
- 설정파일 열기
$ sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf
- 설정파일에 포트번호 옵션 추가
- [mysqld] 섹션에 port = 포트번호 를 추가하고 파일을 저장한 후 vi를 종료한다.
- bind-address 라는 설정항목을 찾아 0.0.0.0 으로 값을 수정한다.
- 서비스 재시작
$ sudo systemctl restart mariadb
2) 방화벽에 포트번호 추가
- 설정한 포트번호를 방화벽 허용 목록에 추가하고 방화벽을 다시 로드한다.
$ sudo ufw allow 9903/tcp
$ sudo ufw reload
3) 외부 컴퓨터에서 접속 확인
- Windows, Mac 등의 호스트 컴퓨터에서 MySQL에 접속을 시도한다.
$ mysql -h리눅스아이피 -P포트번호 -u계정이름 -p
6. MariaDB 삭제하기
1) 서비스 중지
$ sudo systemctl stop mariadb
2) 서비스 자동시작 등록 해제
$ sudo systemctl disable mariadb
3) MariaDB 완전 삭제
$ sudo apt-get purge -y mariadb*
4) 사이드 패키지 제거
$ sudo apt autoremove -y
5) MySQL 관련 파일들 리스트 확인
- 아래 명령을 수행하여 출력되는 항목이 없어야 한다.
- dpkg: 매칭되는 모든 파일들을 시스템에서 검색한다.
$ dpkg -l | grep mariadb
$ dpkg -l | grep mysql
- 만약 출력되는 파일목록이 있다면 아래 명령으로 남아있는 파일들을 삭제한다.
$ sudo apt-get purge -y 파일명
6) 재시작
-삭제를 완료하기 위해서는 시스템 재시작이 필요하다.
$ sudo reboot
'국비수업 > Linux' 카테고리의 다른 글
[Linux] Node.js 설치하기 / 백엔드 가동하기 (0) | 2022.07.26 |
---|---|
[Linux] SSH 서비스 (0) | 2022.07.24 |
[Linux] FTP (File Transfer Protocol) (0) | 2022.07.23 |
[Linux] 네트워크와 방화벽 (0) | 2022.07.22 |
[Linux] 서비스와 리눅스 패키지 (0) | 2022.07.21 |