MySQL 설치 및 기본 설정

MySQLBeginner
지금 연습하기

소개

이 랩에서는 가장 인기 있는 오픈 소스 관계형 데이터베이스 관리 시스템 (RDBMS) 중 하나인 MySQL 의 기본적인 구성 및 사용법을 살펴봅니다. MySQL 은 많은 데이터베이스 기반 웹 애플리케이션과 인기 웹사이트에서 널리 사용됩니다. 이 랩을 마치면 MySQL 설치를 확인하고, 초기 설정을 보호하며, MySQL 셸에 액세스하고, 시스템 데이터베이스 및 테이블을 검사하는 실질적인 경험을 얻게 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 63%입니다.학습자들로부터 99%의 긍정적인 리뷰율을 받았습니다.

MySQL 설치 확인

편의를 위해 MySQL 이 시스템에 미리 설치되어 있습니다. 하지만 설치 과정을 이해하는 것이 중요합니다. 일반적인 Ubuntu 환경에서는 다음 명령을 사용하여 MySQL 을 설치합니다.

다음 명령은 정보 제공 목적으로만 사용됩니다. MySQL 이 이미 환경에 설치되어 있으므로 실행할 필요가 없습니다.

## DO NOT RUN THESE COMMANDS
sudo apt update
sudo apt install mysql-server -y

apt update 명령은 사용 가능한 패키지에 대한 최신 정보를 얻기 위해 패키지 목록을 업데이트합니다. apt install mysql-server -y 명령은 MySQL 서버 패키지를 설치합니다. -y 플래그는 설치 과정에서 나타날 수 있는 모든 프롬프트에 자동으로 "yes"로 응답하는 데 사용됩니다.

MySQL 설치를 확인하고 상태를 확인하는 것으로 시작해 보겠습니다.

먼저, 데스크톱의 터미널 아이콘을 클릭하여 터미널 창을 엽니다.

데스크톱의 터미널 아이콘

터미널에서 다음 명령을 실행하여 MySQL 의 상태를 확인합니다.

sudo service mysql status

이 명령은 시스템 수준의 작업에 필요한 경우가 많은 관리자 권한으로 실행하기 위해 sudo를 사용합니다. service mysql status 부분은 시스템에 MySQL 서비스의 현재 상태를 보고하도록 요청합니다.

MySQL 서비스 상태 출력

MySQL 이 중지되었다는 출력을 볼 수 있습니다. 아직 MySQL 서비스를 시작하지 않았으므로 이는 예상된 결과입니다.

sudo service mysql start

서비스가 시작될 때까지 몇 초 동안 기다린 다음 상태 명령을 다시 실행합니다.

MySQL 서비스 상태 출력

MySQL 셸 접속

이제 몇 가지 기본 작업을 수행하기 위해 MySQL 셸에 액세스해 보겠습니다.

MySQL 셸에 액세스하려면 다음 명령을 사용합니다.

sudo mysql -u root

이 명령은 시스템 수준의 작업에 필요한 경우가 많은 관리자 권한으로 실행하기 위해 sudo를 사용합니다. mysql 명령은 MySQL 셸에 액세스하는 데 사용되며, -u root 플래그는 root 사용자로 연결하고 있음을 지정합니다.

LabEx VM 의 MySQL 설치가 root 사용자가 비밀번호 없이 로그인하도록 구성되어 있으므로 이 경우 비밀번호를 제공할 필요가 없습니다. 이는 개발 환경에서는 일반적이지만 프로덕션 시스템에서는 수행해서는 안 됩니다.

성공하면 환영 메시지와 MySQL 프롬프트가 표시됩니다.

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

이제 SQL 명령을 실행할 수 있는 MySQL 셸에 있습니다.

MariaDB [(none)]> 프롬프트는 MariaDB(MySQL 의 포크) 에 연결되어 있으며 현재 특정 데이터베이스를 사용하고 있지 않음을 나타냅니다.

MySQL 대신 MariaDB 를 보고 있다는 점에 유의하는 것이 중요합니다. 걱정하지 마세요. 이는 이 랩을 완료하거나 MySQL 명령을 배우는 데 영향을 미치지 않습니다. 그 이유는 다음과 같습니다.

  1. MariaDB 는 MySQL 의 원래 개발자가 만든 MySQL 의 포크입니다. MySQL 과 완벽하게 호환되도록 설계되었으며, 즉 MySQL 구문 및 작업과 완전히 호환됩니다.
  2. MariaDB 는 진정한 오픈 소스 버전의 MySQL 을 항상 사용할 수 있도록 하기 위해 만들어졌습니다. MySQL 과의 높은 호환성을 유지하면서 몇 가지 고유한 기능과 개선 사항을 제공합니다.
  3. 이 랩 및 대부분의 기본에서 중간 수준의 MySQL 작업의 경우 MariaDB 를 MySQL 과 똑같이 취급할 수 있습니다. 이 랩에서 사용할 모든 명령은 MariaDB 와 MySQL 모두에서 동일하게 작동합니다.
  4. MariaDB 는 종종 MySQL 보다 가볍고 빠르다고 여겨지므로 이 랩과 같은 학습 환경에 적합합니다. 더 빠른 응답 시간을 확인할 수 있으며, 이는 학습 경험을 더욱 원활하게 만들 수 있습니다.
  5. 일부 Ubuntu 버전을 포함한 많은 Linux 배포판은 오픈 소스 특성과 성능 이점으로 인해 MariaDB 를 기본 MySQL 호환 데이터베이스 시스템으로 사용합니다.

따라서 프롬프트 또는 출력에서 "MariaDB"를 보면 이 랩의 목적상 MySQL 이라고 생각할 수 있습니다. 여기서 배우는 모든 기술은 실제 시나리오에서 MariaDB 와 MySQL 모두에 직접 적용할 수 있습니다.

시스템 데이터베이스 탐색

이제 MySQL 셸에 들어왔으므로 시스템 데이터베이스를 탐색해 보겠습니다. 이는 MySQL 과 함께 사전 설치되어 있으며 MySQL 서버 자체에 대한 중요한 정보를 포함하는 데이터베이스입니다.

MySQL 셸에서 다음 명령을 실행합니다.

SHOW DATABASES;

참고: 명령 끝에 세미콜론 (;) 을 잊지 마세요. SQL 명령은 세미콜론으로 끝나야 합니다.

MySQL 데이터베이스 목록 출력

이 명령은 MySQL 서버에 있는 모든 데이터베이스를 나열합니다. 다음과 유사한 출력을 볼 수 있습니다.

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

이러한 데이터베이스가 무엇인지 자세히 살펴보겠습니다.

  • information_schema: 데이터베이스 메타데이터에 액세스할 수 있는 데이터베이스입니다.
  • mysql: 이 데이터베이스에는 MySQL 서버가 작동하는 데 필요한 정보가 포함되어 있습니다.
  • performance_schema: 이 데이터베이스는 런타임에 서버의 내부 실행을 검사하는 방법을 제공합니다.
  • sys: 이 데이터베이스에는 DBA 및 개발자가 performance_schema 에서 수집한 데이터를 해석하는 데 도움이 되는 일련의 객체가 포함되어 있습니다.

이 랩에서는 mysql 데이터베이스에 집중하겠습니다. 해당 데이터베이스로 전환해 보겠습니다.

USE mysql;

이제 이 데이터베이스에 어떤 테이블이 있는지 살펴보겠습니다.

SHOW TABLES;

긴 테이블 목록이 표시됩니다. 이러한 테이블은 MySQL 에 대한 다양한 구성 및 운영 데이터를 저장합니다.

시스템 테이블 데이터 검토

이제 시스템 테이블을 살펴보았으니, 그중 하나의 데이터를 검사해 보겠습니다. mysql 데이터베이스의 user 테이블에는 MySQL 사용자 계정에 대한 정보가 포함되어 있습니다.

user 테이블의 구조를 보려면 다음 명령을 실행하세요:

DESCRIBE user;

이 명령은 user 테이블의 모든 열을 보여줍니다. 이 테이블에는 각 MySQL 사용자에 대한 자세한 정보가 포함되어 있으므로 많은 열을 볼 수 있습니다.

이제 이 테이블의 일부 데이터를 살펴보겠습니다. 몇 가지 주요 열에 초점을 맞추겠습니다:

SELECT User, Host, Password_expired FROM user;

이 쿼리는 user 테이블에서 세 가지 중요한 열을 선택합니다:

  • User: MySQL 계정의 사용자 이름
  • Host: 이 사용자가 연결을 허용받은 호스트
  • Password_expired: 비밀번호가 만료되었는지 여부

다음과 유사한 출력을 볼 수 있습니다:

+-------------+-----------+------------------+
| User        | Host      | password_expired |
+-------------+-----------+------------------+
| mariadb.sys | localhost | Y                |
| root        | localhost | N                |
| mysql       | localhost | N                |
+-------------+-----------+------------------+
3 rows in set (0.001 sec)

이 출력은 시스템에 존재하는 MySQL 사용자 계정을 보여줍니다. root 사용자는 주요 관리 계정이며, 다른 계정은 MySQL 이 다양한 목적으로 사용하는 시스템 계정입니다.

MySQL 셸을 종료하려면 다음을 입력하세요:

EXIT;

그러면 일반 터미널 프롬프트로 돌아갑니다.

요약

이번 실습에서는 LabEx VM 에서 MySQL 을 다루는 필수 단계를 살펴보았습니다. MySQL 설치를 확인하고, 초기 설정을 보안했으며, MySQL 셸에 접속하고, 시스템 데이터베이스를 탐색했으며, 시스템 테이블의 데이터를 검토했습니다.

다음과 같은 방법을 배웠습니다.

  1. MySQL 서비스 상태 확인 및 관리
  2. MySQL 셸 접속
  3. 시스템 데이터베이스 보기
  4. 시스템 데이터베이스 내 테이블 탐색
  5. 시스템 테이블에서 데이터 쿼리

이러한 기본적인 기술은 더 고급 데이터베이스 관리 작업을 위한 기초를 형성합니다. MySQL 을 계속 사용하면서 이러한 기본 사항을 바탕으로 자체 데이터베이스를 생성하고, 정교한 쿼리를 작성하며, MySQL 을 다양한 애플리케이션과 통합하게 될 것입니다. 데이터베이스 관리 숙달의 핵심은 연습이라는 점을 기억하고, 다양한 명령어를 실험하고 MySQL 의 기능을 더 탐색하는 것을 망설이지 마십시오.