Search
Duplicate
📒

[Ansible] 04-x. DB

수업
Ansible
주제
5 more properties
참고

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에 위치한다.