Ubuntu 22.04 LTS 에 MySQL 설치, 데이터베이스 생성, 계정 권한 설정 및 외부 접속 허용

Ubuntu 22.04 서버에 MySQL을 설치하고, 새로운 데이터베이스를 생성하며, 계정에 적절한 권한을 설정하는 방법을 안내합니다. 또한 외부 접속을 허용하는 방법도 추가로 설명하겠습니다.

1단계: 시스템 업데이트

먼저, 시스템 패키지를 최신 상태로 업데이트합니다. 터미널을 열고 다음 명령어를 입력하세요:

sudo apt update
sudo apt upgrade -y

2단계: MySQL 설치

MySQL 서버를 설치합니다. 터미널에 다음 명령어를 입력하세요:

sudo apt install -y mysql-server

설치가 완료되면 MySQL 서비스가 자동으로 시작됩니다.

3단계: MySQL 접속 및 root 비밀번호 설정

root로 접속 한 뒤 비밀번호 초기화를 해 줍니다.

sudo mysql -u root -p

위 명령어를 입력하는 경우 “Enter password” 라고 나오는데 이때는 enter를 쳐주면 됩니다. 엔터를 입력하면 mysql에 접속됩니다.

4단계: MySQL 보안 설정

MySQL의 기본 보안 설정을 강화하기 위해 mysql_secure_installation 스크립트를 실행합니다. 터미널에 다음 명령어를 입력하세요:

sudo mysql_secure_installation

프롬프트에 따라 설정을 진행합니다.

  1. VALIDATE PASSWORD PLUGIN 설정: 비밀번호 강도를 설정합니다.
  2. 익명 사용자 삭제: 익명 사용자를 삭제합니다.
  3. 원격 루트 로그인 비활성화: root 계정의 원격 로그인을 비활성화합니다.
  4. 테스트 데이터베이스 삭제: 기본으로 생성된 테스트 데이터베이스를 삭제합니다.
  5. 권한 테이블 다시 로드: 권한 테이블을 다시 로드하여 변경 사항을 적용합니다.

5단계: 새로운 데이터베이스 생성

MySQL 셸에서 새로운 데이터베이스를 생성합니다. 예를 들어, exampledb라는 이름의 데이터베이스를 생성하려면 다음 명령어를 입력하세요:

CREATE DATABASE exampledb;

MySQL 8 부터는 기본 character set 과 collation 이 utf8mb4과 utf8mb4_0900_ai_ci이므로 별도 설정이 필요 없습니다. MySQL 의 default character set 은 MySQL 의 설정 파일에 별도로 설정할 수 있습니다.

6단계: 새로운 사용자 생성 및 권한 부여

새로운 사용자를 생성하고 데이터베이스에 대한 권한을 부여합니다. 예를 들어, exampleuser라는 사용자를 생성하고 exampledb 데이터베이스에 대한 모든 권한을 부여하려면 다음 명령어를 입력하세요:

CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON exampledb.* TO 'exampleuser'@'localhost';
FLUSH PRIVILEGES;

7단계: 외부 접속 허용

MySQL이 외부 접속을 허용하도록 설정을 변경합니다. 먼저 MySQL 설정 파일을 엽니다:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

mysqld.cnf 파일에서 bind-address와 mysqlx-bind-address 항목을 찾습니다. 기본값은 127.0.0.1로 설정되어 있을 것입니다. 이를 주석 처리하거나, 서버의 외부 IP 주소 또는 0.0.0.0으로 변경합니다:

#bind-address            = 127.0.0.1
#mysqlx-bind-address     = 127.0.0.1
bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

파일을 저장하고 닫습니다. 변경 사항을 적용하려면 MySQL 서비스를 다시 시작합니다:

sudo systemctl restart mysql

8단계: 방화벽 설정

외부 접속을 허용하기 위해 MySQL 포트(기본적으로 3306)를 방화벽에서 열어야 합니다. 다음 명령어를 입력하여 방화벽 규칙을 추가합니다:

sudo ufw allow 3306/tcp
sudo ufw reload

9단계: 외부 접속용 사용자 권한 설정

외부에서 MySQL에 접속할 수 있는 사용자를 생성하고 권한을 부여합니다. MySQL 셸에서 다음 명령어를 입력하세요:

CREATE USER 'exampleuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON exampledb.* TO 'exampleuser'@'%';
FLUSH PRIVILEGES;

여기서 %는 모든 IP 주소에서 접속을 허용함을 의미합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

Scroll to Top