아래 예시의 appdb, app, <password>, 10.0.0.x 는 실제 값으로 바꿔서 쓴다.
1. 설치
|
1 2 |
sudo apt install mariadb-server mariadb-client sudo mariadb-secure-installation |
2. DB, 계정, 권한
|
1 2 3 4 5 6 7 8 9 10 |
CREATE DATABASE appdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'app'@'%' IDENTIFIED BY '<password>'; GRANT ALL PRIVILEGES ON appdb.* TO 'app'@'%'; -- 특정 뷰만 읽게 하는 계정 CREATE USER 'report'@'%' IDENTIFIED BY '<password>'; GRANT SELECT ON appdb.view_users TO 'report'@'%'; SHOW GRANTS FOR 'app'@'%'; |
root@’%’ 처럼 root 를 외부에 여는 것은 피하고, 서비스마다 필요한 DB 에만 권한을 준 계정을 따로 만든다. GRANT 와 CREATE USER 를 쓰면 FLUSH PRIVILEGES 는 필요 없다.
3. 백업과 복원
|
1 2 3 4 5 6 7 8 |
# 백업 (InnoDB 는 --single-transaction 으로 잠금 없이 일관된 백업) mysqldump -u app -p --single-transaction --routines --triggers appdb | gzip -9 > appdb.sql.gz # 복원 gunzip < appdb.sql.gz | mysql -u app -p appdb # 다른 서버로 바로 복원 mysqldump -h 127.0.0.1 -u app -p --single-transaction appdb | mysql -h 10.0.0.12 -u app -p appdb |
-p비밀번호 처럼 명령줄에 비밀번호를 […]
