LEMP 스택을 먼저 준비했던 이전 글에 이어서 이번 글에서는 자신의 서버에 사용할 Database(데이터베이스,DB) 생성과 그 DB를 사용할 MariaDB 사용자를 생성하고 그 권한을 부여하는 방법을 알아보겠습니다. 이번 연재작의 주제인 워드프레스의 사용자 데이터(블로그 글, 블로그 설정등)를 담을 DB 말이죠.
이 글은 LEMP 스택에 WordPress 설치하기 시리즈 연재작의 일환으로 작성되었지만 MariaDB(마리아 디비), MySQL(마이 에큐엘)사용에 대한 기초사항이므로 꼭 워드프레스가 아니더라도 적용할 수 있습니다.
그리고 애초 태생이 MySQL인 Maria DB의 거의 모든 명령어는 MySQL 명령어와 완전히 똑같은데요. 사실 예전에 하나의 서버에 두개의 워드프레스 설치하기 방법을 다룰 때 두 번째 DB를 생성하면서 한 번 해본 내용입니다. 그땐 MySQL 이었죠.
우선 자신의 서버에 접속한다음 아래 내용을 따라합니다.
MariaDB 접속 방법 (CLI)
제가 알려드렸던 LEMP 스택을 이제막 그대로 구성한 뒤라면 초기 MariaDB의 사용자는 root 뿐이고 우리가 사용할 Database가 전혀 아무것도 없는 상태입니다. DB에 접속해서 워드프레스가 사용할 새로운 DB와 그걸 사용할 DB 사용자를 만들 어야겠죠?
LEMP 스택구성에서 마리아 DB를 설치했을 때 설정했던 root 의 비밀번호를 기억하고 계실겁니다. 마리아DB 접속 명령어는 아래와 같습니다. CLI에서 서버에 접속한 뒤 아래 명령어를 입력하고 Enter password: 가 나오면 DB의 root 사용자 비밀번호를 입력해서 접속해주세요.
mysql --user=root mysql -p
위 그림의 맨 아래처럼 MariaDB [mysql]> 이라고 나오면 이제 DB 명령어를 입력할 수 있는 상태인 것입니다.
마리아DB의 명령어는 mySQL 명령어와 같으므로 필요한 명령어가 있다면 인터넷에서 mySQL 명령어를 검색해보면 됩니다. 주의해야할 건 MariaDB도 마찬가지로 명령어는 끝이 항상 세미콜론(;)으로 끝나야한다는 것입니다.
현재 MariaDB 데이터베이스 목록 보기
현재의 데이터베이스(DB) 목록을 살펴봅시다
SHOW DATABASES;
위 4개의 데이터베이스 중 phpmyadmin은 제 블로그 글 중에 phpmyadmin 설치방법으로 해당 애플리케이션을 설치하고 난뒤 새로 생긴 DB입니다. 자신이 별도로 설치하지 않았다면 없을 것입니다. 나머지 3개가 마리아 디비를 처음 설치했을 때 준비되는 디비목록인데요. 프로그램 자체적으로 사용하므로 딱히 건들필요는 없습니다.
데이터베이스 추가하기
아래와 같은 형태로 MySQL 명령어를 입력해서 생성할 수 있습니다.
CREATE DATABASE 추가할DB이름;
저는 demo_wordpress 라는 이름으로 새로운 DB를 추가하겠습니다.
CREATE DATABASE demo_wordpress;
새로운 MariaDB 사용자 추가하기
새로운 사용자없이 이번에 설치할 워드프레스가 DB의 root 사용자를 그대로 써도 되겠지만 다른 애플리케이션을 위한 또다른 데이터베이스를 추가한다면 root의 권한이 너무 막강한 관계로 서로다른 데이터베이스에 영향을 미치거나 보안문제가 있을 수 있으므로 사용자와 권한을 분리시켜주는게 좋습니다.
그럼 새로만든 DB를 사용할 MariaDB 사용자를 만들어 봅시다. CREATE USER DB사용자이름@호스트이름;
의 형태로 입력해서 추가합니다. 저는 demo_wordpress_db_user 라는 이름의 사용자로 추가하겠습니다.
CREATE USER demo_wordpress_db_user@localhost;
호스트이름: 같은 서버내의 사용자라서 호스트이름이 localhost 입니다. 다른 서버(원격지)에대한 db 사용자를 추가하려면 ip 주소나 미리정의된 이름을 쓰게됩니다. 보통 작은 서버는 DB를 별도로 분리하지 않으므로 localhost로 쓰게 됩니다.
그리고 아래와 같은 형태로 DB 사용자의 비밀번호 부여합니다.
SET PASSWORD FOR 사용자이름@호스트이름= PASSWORD("비밀번호");
비밀번호는 특수문자, 영어대문자, 영어소문자, 숫자 조합으로 어렵게 만들어두는게 좋습니다. 잊지 않도록 어딘가 적어둡시다. 저는 아래처럼 입력했습니다.
SET PASSWORD FOR demo_wordpress_db_user@localhost= PASSWORD("pa55w0rd@4@w0rdpre55");
이제 앞서 만들어둔 데이터베이스에대한 권한을 새로운 사용자에게 부여해줘야하는데요. 특정 DB에대한 읽기, 쓰기 모든 권한은 아래 형태로 부여해줍니다.
GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO 사용자이름@호스트이름 IDENTIFIED BY ‘비밀번호’;
그럼 제경우 아래처럼 입력하면 되지요.(한 줄입니다). 여러분은 여러분의 DB와, 사용자, 패스워드를 입력하시기 바랍니다.
GRANT ALL PRIVILEGES ON demo_wordpress.* TO demo_wordpress_db_user@localhost IDENTIFIED BY 'pa55w0rd@4@w0rdpre55';
마지막으로 변경된 권한 반영하기위해 아래 명령어를 입력해줍니다.
FLUSH PRIVILEGES;
아래 그림처럼 위 4개의 명령어를 입력할 때마다 에러없이 Query OK라는 문자가 출력되어야합니다.
참고: DB 사용자를 삭제하려면 DB의 root사용자로 DROP USER 사용자이름@localhost;
처럼 입력하면 됩니다.
이렇게 두번째 워드프레스에서 사용할 DB와 MariaDB 사용자, 사용자 비밀번호가 준비되었습니다.
마리아DB 사용자 목록 확인
사용자 정본는 앞서 확인해본 데이터베이스 목록중에 mysql 이라는 이름의 데이터베이스에 있습니다.
먼저 이 이름의 데이터베이스를 사용하기위해 아래 명령어를 넣고
use mysql;
그런다음 아래 명령으로사용자 목록을 전부 출력해볼 수 있습니다.
select user, host from user;
이렇게 제가 추가했던 DB 사용자가 확인되네요. 🙂
이제 exit;
명령어를 입력해서 MariaDB 명령어 사용은 접속 종료하도록 합니다.
연재작 다음단계
LEMP 스택에 WordPress 설치하기 시리즈의 일환으로 DB 사용자를 위처럼 추가해보았습니다. 이제 이 정보들을 잘 기억해둬야 다음 단계를 이어가면서 사용할 수 있습니다.