한줄공지
  • 등록된 공지내용이 없습니다.

Ubuntu 24에서 MySQL을 설치 하는 방법

2024년 7월 5일
조회수 62
코멘트 0

목차

소개

MySQL는 구조화된 쿼리 언어(SQL)에 기반한 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 사용자들이 다양한 응용 프로그램과 함께 데이터를 효율적으로 저장, 관리 및 검색할 수 있도록 합니다. 이 가이드에서는 Ubuntu 24.04에 MySQL을 설치하고 서버를 보안하여 데이터베이스 콘솔에 인증 된 액세스를 가능하게 하는 방법을 설명합니다.

전제 조건

시작하기 전에:

  • Vultr에서 Ubuntu 24.04 서버를 배포합니다.
  • sudo 권한이 있는 비 root 사용자로 SSH를 사용하여 서버에 액세스합니다.
  • 서버를 업데이트 합니다.

MySQL 설치

Ubuntu 24.04의 기본 APT 저장소에서 MySQL을 사용할 수 있으며, PPA 저장소를 사용하여 특정 릴리스 버전을 설치할 수 있습니다. 다음 단계에서 서버 패키지 인덱스를 업데이트하고 서버에 최신 MySQL 데이터베이스 서버 버전을 설치합니다.

  1. 서버 패키지 인덱스를 업데이트합니다.
$ sudo apt update
  1. MySQL 서버 패키지를 설치합니다.
$ sudo apt install mysql-server -y
  1. 서버에 설치된 MySQL 버전을 확인합니다.
$ mysql --version

출력:

mysql  Ver 8.0.37-0ubuntu0.24.04.1 for Linux on x86_64 ((Ubuntu))

MySQL 시스템 서비스 관리

MySQL은 Ubuntu 24.04 서버에서 데이터베이스 서버 프로세스 및 런타임을 제어하기 위해 mysql 시스템 서비스를 사용합니다. 다음 단계에서 mysql 시스템 서비스를 부팅 시 자동으로 시작하도록 설정하고 서버에서 데이터베이스 프로세스를 관리하기 위해 서비스 상태를 확인합니다.

  1. MySQL을 부팅 시 자동으로 시작하도록 설정합니다.
$ sudo systemctl enable mysql

출력:

Synchronizing state of mysql.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable mysql
  1. MySQL 데이터베이스 서버를 시작합니다.
$ sudo systemctl start mysql
  1. MySQL 서버 상태를 확인하여 실행 중인지 확인합니다.
$ sudo systemctl status mysql

출력:

mysql.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: en>
Active: active (running) since Tue 2024-06-04 15:57:55 EEST; 1h 11min ago
Main PID: 7523 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 7024)
Memory: 375.5M (peak: 379.3M)
CPU: 2min 32.531s
CGroup: /system.slice/mysql.service
    └─7523 /usr/sbin/mysqld

MySQL 서버 보안

MySQL 서버를 보호하여 데이터베이스에 무단으로 액세스하는 것을 방지하는 것은 중요한 단계입니다. 기본적으로 특권 사용자인 root는 MySQL 데이터베이스 콘솔에 액세스할 수 있습니다. 다음 단계에서 MySQL root 사용자 암호를 만들고 보안되지 않은 기본값을 비활성화하여 데이터베이스 서버를 보안합니다.

  1. 다음 명령을 실행하여 MySQL 보안 설치 스크립트를 시작합니다.
$ sudo mysql_secure_installation

아래 스크립트 프롬프트를 따라서 새 root 사용자 암호를 설정하고 익명 사용자를 제거하고 원격 root 로그인을 금지하고 MySQL 데이터베이스 서버에서 테스트 데이터베이스를 삭제합니다.

  • VALIDATE PASSWORD 구성 요소: Y 입력 후 Enter를 눌러 서버에서 암호 유효성 검사를 활성화합니다.
  • 암호 유효성 정책: 2를 입력하여 서버에서 강력한 암호 사용을 활성화합니다.
  • 새 암호: root 데이터베이스 사용자에 할당할 새로운 강력한 암호를 입력합니다.
  • 새 암호 다시 입력: 루트 사용자 암호를 확인하기 위해 암호를 다시 입력합니다.
  • 제공된 암호를 사용하시겠습니까? Y를 입력하여 새 사용자 암호를 적용합니다.
  • 익명 사용자 제거? Y를 입력하여 알 수 없는 데이터베이스 사용자에 대한 MySQL 콘솔 액세스를 취소합니다.
  • 원격 root 로그인 금지? Y를 입력하여 서버에서 MySQL 루트 사용자 계정에 대한 원격 액세스를 비활성화합니다.
  • 테스트 데이터베이스 및 액세스 제거? Y를 입력하여 MySQL 테스트 데이터베이스를 삭제합니다.
  • 권한 테이블 다시로드? 변경된 구성 변경 사항을 적용하려면 Y를 입력합니다.
  1. 구성 변경 사항을 적용하려면 MySQL 서비스를 다시 시작합니다.
$ sudo systemctl restart mysqld

MySQL 액세스

  1. root로 MySQL 데이터베이스 서버에 로그인합니다.
$ sudo mysql -u root -p

프롬프트에서 이전에 설정한 root 사용자 암호를 입력합니다.

  1. 예를 들어 my_database라는 새 MySQL 데이터베이스를 만듭니다.
mysql> CREATE DATABASE my_database;
  1. 강력한 암호로 새 MySQL 데이터베이스 사용자를 만듭니다. 예: my_user, my_password를 원하는 암호로 교체합니다. (암호 강도 정책에 따라)
mysql> CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'my_password';
  1. 데이터베이스 사용자 my_user에게 my_database 샘플 데이터베이스에서 모든 권한을 부여합니다.
mysql> GRANT ALL PRIVILEGES ON my_database.* TO 'my_user'@'localhost';
  1. 새 사용자 변경 사항을 적용하려면 MySQL 권한 테이블을 새로 고쳅니다.
mysql> FLUSH PRIVILEGES;
  1. MySQL 데이터베이스 콘솔을 종료합니다.
mysql> Exit

샘플 MySQL 데이터베이스 생성

비 특권 MySQL 사용자는 기본적으로 데이터베이스 서버에서 CREATE 권한을 갖습니다. 다음 섹션에서는 비 특권 샘플 사용자 my_user를 사용하여 예제 데이터베이스를 만들고 데이터베이스 테이블에 새 레코드를 추가합니다.

  1. 이전에 만든 my_user 데이터베이스 사용자로 MySQL 데이터베이스 콘솔에 로그인합니다.
$ mysql -u my_user -p

프롬프트에서 이전에 설정한 my_user 암호를 입력합니다.

  1. MySQL 사용 가능한 모든 데이터베이스를 나열합니다.
mysql> SHOW DATABASES;

출력:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_database        |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
  1. 또 다른 샘플 MySQL 데이터베이스를 만듭니다. 예: bookstore_db.
mysql> CREATE DATABASE example_vultr;
  1. 새 데이터베이스로 전환합니다.
mysql> USE example_vultr;
  1. 다양한 데이터 유형을 저장하기 위해 3개의 열이 있는 샘플 테이블을 만듭니다.
mysql> CREATE TABLE sample_table (
         id INT AUTO_INCREMENT PRIMARY KEY,
         name VARCHAR(255) NOT NULL,
         description TEXT,
         created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
         );
  1. sample_table 테이블에 샘플 데이터를 삽입합니다.
mysql> INSERT INTO sample_table (name, description) VALUES
       ('Sample Item 1', 'This is the first sample item.'),
       ('Sample Item 2', 'This is the second sample item.'),
       ('Sample Item 3', 'This is the third sample item.');
  1. 새 테이블 데이터가 사용 가능한지 확인하기 위해 모든 테이블 레코드를 선택합니다.
mysql> SELECT * FROM sample_table;

출력:

+----+--------------+-------------------------------+---------------------+
| id | name         | description                   | created_at          |
+----+--------------+-------------------------------+---------------------+
|  1 | Sample Item 1| This is the first sample item.| 2024-06-19 10:00:00 |
|  2 | Sample Item 2| This is the second sample item.| 2024-06-19 10:00:00|
|  3 | Sample Item 3| This is the third sample item. | 2024-06-19 10:00:00|
+----+--------------+-------------------------------+---------------------+

결론

Ubuntu 24.04 서버에 MySQL을 설치하고 데이터베이스 서버에 대한 인증 된 액세스를 허용하여 모든 유효한 사용자에 대한 보안을 설정했습니다. MySQL은 현대 웹 응용 프로그램과 통합 되며, 서버를 전용 원격 데이터베이스 서버로 사용하거나 LAMP와 같은 동적 응용 프로그램 스택을 사용하는 데이터베이스 백엔드로 사용할 수 있습니다. MySQL에 대한 자세한 정보는 공식 문서를 참조하십시오.

 

출처: https://docs.vultr.com/how-to-install-mysql-on-ubuntu-24-04

안정적이고 저렴한 가상 서버(VPS) 안내

안정적인 서버 호스팅을 찾고 계신가요? 지금 Vultr 호스팅을 한번 이용 해 보세요. 지금 보고 계신 HaruLogs 사이트도 Vultr에서 VPS 호스팅 하고 있습니다. 한국, 일본, 미국등 다양한 국가에 클릭 몇번으로 안정적이고 저렴한 VPS를 운영 할 수 있습니다.

아래 배너를 통해 회원 가입을 하시면 100달러의 무료 크레딧을 받을 수 있습니다. 100달러의 무료 크레딧은 Vultr의 최소 사양 VPS를 20대 동시 운영가능한 크레딧입니다.

지금 무료로 Vultr $100 크레딧 선물 받기

 

Vultr 서비스 요약

  • VPS
    • 인스턴스
      • AMD 또는 Intel High Performance 인스턴스 최저 $6 - 1vCPU, 1GB Memory, 2TB Bandwidth, 25GB NVMe
    • 엣지
  • Block Storage
  • Object Storage (AWS S3 호환)
  • Firewall
  • Network
  • Load Balancers
  • Kubernetes
  • Databases
포스트 통계
지금 보고있는 포스트의 통계 데이터를 확인 해 보세요.
  • 총 조회수
    63
  • 최근 30일 조회수
    27
연관 포스트
코멘트 작성