MySQL은 전 세계적으로 가장 널리 사용되는 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS) 중 하나이다.
빠른 속도와 사용 편의성, 안정성을 자랑하며, 특히 웹 개발 분야에서 압도적인 인기를 자랑한다.
이 글에서는 리눅스 초보자도 쉽게 따라 할 수 있도록 MySQL을 설치하는 방법을 단계별로 설명하려 한다.
명령어만 따라하면 쉽게 설치가 가능하니, 따라하기만 해도 설치 할 수 있다.

MySQL 설치하기

MySQL 데이터베이스 서버를 설치한다.
아래의 명령어를 입력하면 MySQL 서버가 자동으로 설치된다.

sudo apt install mysql-server
ShellScript

MySQL 보안 설정하기

MySQL 서버를 처음 설치하면 보안 설정을 위해 몇 가지 작업을 수행해야 한다.
아래의 명령어를 입력하여 MySQL 보안 스크립트를 실행한다.

sudo mysql_secure_installation
ShellScript

명령어를 실행하면 보안을 위한 설정 질의가 나타난다.
각 질문에 대해 모두 ‘YES’ 하는 것이 보안에는 좋으나, 이는 본인에 선택에 따라 적절히 응답하면 된다.

VALIDATE PASSWORD 설정

  • 비밀번호 유효성 검사를 위한 플러그인을 사용할 것인지 확인하는 질문이다.
  • 비밀번호의 강도를 확인하고 비밀번호 정책을 적용하려면 ‘Y’를 입력하고, 그렇지 않으면 ‘N’을 입력한다.
    • ‘Y’를 입력하면 비밀번호 강도에 따라 사용자 비밀번호 패턴을 어렵게 구성해야 한다.
Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
ShellScript
  • 플러그인을 사용하기로 선택한 경우, 비밀번호 강도 수준을 선택한다
    • 0: Low (약함) > 이 글에서는 0으로 하였다.
    • 1: Medium (보통)
    • 2: Strong (강함)
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
ShellScript

익명 사용자 제거

  • 익명 사용자를 제거할 것인지 확인하는 질문이다.
  • 보안을 위해 ‘Y’를 입력하여 제거해두자.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
ShellScript

루트 사용자 원격 로그인 비활성화

  • 루트 사용자의 원격 로그인을 허용하지 않을 것인지 확인하는 질문이다.
  • 루트 계정을 이용하여 원격에서 접속할지 본인의 선택 여부에 달려 있다.
  • 나는 보통 원격용 계정을 생성하여 사용하기 때문에 ‘Y’를 입력하여 비활성화하였다.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
ShellScript

테스트 데이터베이스 제거

  • 테스트 데이터베이스와 이에 대한 접근 권한을 제거할 것인지 묻는 질문이다.
  • 학습 데이터로 MySQL을 학습할 것이 아니기 때문에 딱히 필요 없어 보인다.
  • ‘Y’를 입력하여 제거하자.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
ShellScript

권한 테이블 재로드

  • 권한 테이블을 즉시 적용할 것인지 묻는 질문이다.
  • 위에서 차례로 설정한 값들을 즉시 적용하기 위해서 ‘Y’를 입력하여 권한 테이블을 재로드하자.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
ShellScript

설치 완료 및 확인

MySQL 서버는 기본적인 보안 설정이 완료되었다.
터미널에 다음과 같은 메시지가 나타나면 정상적으로 설정이 된 것이다.

All done!
ShellScript

MySQL 서버 접속하기

터미널에서 MySQL 접속하기

MySQL 서버에 접속하려면 터미널에서 다음의 명령어를 실행하면 된다.

sudo mysql -u root -p
ShellScript

루트 사용자로 MySQL에 접속하겠다는 명령어이다.
데이터베이스 루트 계정의 비밀번호를 입력하라고 뜨지만,
따로 설정한 적이 없기 때문에 비밀번호는 입력하지 않아도 된다.
엔터를 눌러 진행을 계속 하면 된다.

Enter Password: (엔터 입력)
ShellScript

데이터베이스 생성하기

이 글에선 워드프레스를 사용하기 위해 MySQL의 데이터베이스 및 사용자를 생성하려 한다.
꼭 워드프레스가 아니더라도 아래의 명령어를 적절하게 수정하여 자신의 데이터베이스로 사용하면 된다.
사용할 데이터베이스를 만들어보자.
이 글에서는 데이터베이스의 이름을 ‘wordpress’로 지어줬지만, 꼭 나와 같이 하지 않아도 된다.
이름은 자기가 사용하고 싶은 마음대로 데이터베이스의 이름을 지정하면 된다.
예를 들면 ‘test’, ‘project_db’ 등으로 말이다.

-- 데이터베이스 생성: wordpress
CREATE DATABASE wordpress;
SQL

사용자 생성하기 (옵션)

데이터베이스를 사용할 사용자를 생성한다.
이는 선택적 옵션이며 해도 되고 하지 않아도 된다.
굳이 새로운 사용자 계정을 만드는 이유는 특정 데이터베이스에 대한 권한을 주거나 하는 등의 보안상 이유가 크다.
개인적으로는 계정에 따른 구분 용도로 사용하기 편해서 사용하는 편이다.

아래의 명령어를 자신이 생성할 정보에 맞게 바꿔서 실행하자.
반드시 데이터베이스 이름과 사용자 이름, 비밀번호는 개인에 맞게 변경해서 사용해야 한다!
이 글에서 사용된 정보는 다음과 같다.

  • 사용자 이름 : eunbyeol
  • 비밀번호 : password
  • 사용될 데이터베이스 : wordpress
-- 사용자 추가: user / password
CREATE USER 'eunbyeol'@'localhost' IDENTIFIED BY 'password';
-- 추가한 사용자의 모든 권한 허용
GRANT ALL PRIVILEGES ON wordpress.* TO 'eunbyeol'@'localhost';
-- 권한 즉시 적용
FLUSH PRIVILEGES;
EXIT;

/* 예시
* [test 데이터베이스에 user를 추가하기]
*    CREATE USER 'user'@'localhost' IDENTIFIED BY '1234';
*    GRANT ALL PRIVILEGES ON test.* TO 'user'@'localhost';
*/
SQL

축하한다! ? MySQL 설치 및 설정이 모두 완료 되었다.
이제 위에서 했던 것 처럼 데이터베이스를 생성하고, 테이블을 만들고, 데이터를 관리하는 등 다양한 작업을 수행할 수 있다.

Similar Posts

댓글 남기기