참고
1. 목차
NOTE
•
•
목차
NOTE
•
•
1. 목차
NOTE
•
•
목차
NOTE
•
•
MariaDB 설치
MariaDB 버전
•
10.11.7(LTS) - (링크에서는 10.11까지 확인가능)
MariaDB 스크립트
---
- name: MariaDB 설치 플레이북
gather_facts: yes
become: yes
hosts: servers
vars_files:
- vars/vars_mariadb.yml
tasks:
- name: APT 업데이트
apt:
update_cache: yes
- name: 필요한 Python 패키지 설치
apt:
name: python3-pymysql
state: present
- name: MariaDB APT Key 추가
apt_key:
url: https://mariadb.org/mariadb_release_signing_key.asc
state: present
- name: MariaDb 저장소 설치
apt_repository:
repo: "deb [arch=amd64,arm64,ppc64el] http://mirror.mariadb.org/repo/{{ mariadb_version }}/ubuntu {{ ansible_distribution_release }} main"
state: present
- name: APT 업데이트
apt:
update_cache: yes
- name: MariaDB 서버 & 클라이언트 설치
apt:
name:
- mariadb-server
- mariadb-client
state: present
- name: MariaDb 서비스 시작
systemd:
name: mariadb
enabled: yes
state: started
- name: MariaDB 루트계정 패스워드 변경
mysql_user:
name: root
password: "{{ root_db_password }}"
host_all: yes
state: present
update_password: always
login_unix_socket: /var/run/mysqld/mysqld.sock
column_case_sensitive: false
- name: 익명 유저 제거
mysql_user:
name: ''
host_all: yes
state: absent
login_user: root
login_password: "{{ root_db_password }}"
- name: 테스트 데이터베이스 제거
mysql_db:
name: test
state: absent
login_user: root
login_password: "{{ root_db_password }}"
YAML
복사
MariaDB CLI
# -h, --host: 데이터 베이스 서버의 호스트명을 지정한다.
mysql -h hostname
# -u, --user: 데이터베이스 사용자명 지정
mysql -u username
# -p, --password: 사용자 비밀번호 저장
mysql -p
# -P, --port: 데이터베이스 서버의 포트
mysql -P 3306
# -S, --socket: 유닉스 소켓 파일
mysql -S /var/run/mysqld/mysqld.sock
# -D, --database: 접속수 사용할 DB이름
mysql -D [databse_name]
Bash
복사
# 도움말
help;
# 데이터베이스 목록확인
SHOW DATABASES;
# 데이터베이스 선택
USE [databse_name]
# 테이블 목록 보기
SHOW TABLES;
# 테이블 구조 보기
DESCRIBE [table_name]
# 데이터베이스 생성/삭제
CREATE DATABASE [databse_name];
DROP DATABASE [databse_name];
# 데이터베이스 유저
CREATE USER 'username@localhost' IDENTIFIED BY 'password'
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
REVOKE ALL PRIVILEGES ON databse_name.* FROM 'username@'localhost';
# 데이터베이스 백업/복원
mysqldump -u root -p database_name > backup.sql
mysql -u root -p database_name < backup.sql
# 관리 명령어
STATUS; # 서버 상태
SELECT USER(); # 현재 사용자
SELECT NOW(); # 현재 시간
SELECT VERSION(); # 버전확인
Bash
복사
•
DB_HOST, DB_USER, DB_PASSWORD, DB_NAME: MariaDB 서버의 접속 정보를 설정합니다.
•
mysql 명령어: MariaDB에 접속하여 쿼리를 실행하는 데 사용됩니다.
◦
h: 호스트 주소를 지정합니다.
◦
u: 사용자 이름을 지정합니다.
◦
p: 사용자 비밀번호를 지정합니다.
◦
D: 사용할 데이터베이스를 지정합니다.
◦
e: 실행할 SQL 쿼리를 지정합니다.
MySQL 소켓은 유닉스 소켓 파일을 통해 서버와 클라이언트 간의 통신을 가능하게 해주는 메커니즘입니다.
•
MySQL 서버가 유닉스 서버 기반 시스템에서 동작할때 사용되며, 네트워크를 경유하지 않고 시스템 내에서 빠르고 효율적으로 전송
•
/var/run/mysqld/mysqld.sock 경로 위치
•
직접 파일을 통해 통신하므로 속도가 빠르다.
•
설정파일 my.cnf는 /etc/mysql/my.cnf에 위치한다.