MySQL 데이터베이스 관리 필수

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 MySQL 데이터베이스에서 새로운 사용자를 생성하고, 최대 연결 수를 설정하며, 바이너리 로그 보존 기간을 구성하는 방법을 배우게 됩니다. 이 프로젝트는 기본적인 데이터베이스 관리 작업을 이해하고 SQL 스크립트를 사용하여 이를 자동화하는 방법을 익히도록 설계되었습니다.

👀 미리보기

MySQL database setup preview

🎯 작업

이 프로젝트에서 다음을 배우게 됩니다:

  • 시스템에서 MySQL 서비스를 시작하는 방법
  • 비밀번호 없이 로컬 로그인이 가능한 새로운 사용자를 생성하는 방법
  • 데이터베이스의 최대 연결 수를 설정하는 방법
  • 바이너리 로그 자동 삭제를 활성화하고 로그 보존 기간을 설정하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • MySQL 데이터베이스에서 사용자 계정 및 권한을 관리할 수 있습니다.
  • 성능 및 유지 관리를 최적화하기 위해 데이터베이스 설정을 구성할 수 있습니다.
  • SQL 스크립트를 사용하여 일반적인 데이터베이스 관리 작업을 자동화할 수 있습니다.

MySQL 서비스 시작

이 단계에서는 시스템에서 MySQL 서비스를 시작합니다. 이 단계를 완료하려면 아래 단계를 따르세요.

  1. 시스템에서 터미널을 엽니다.
  2. 다음 명령을 실행하여 MySQL 서비스를 시작합니다:
sudo service mysql start

이렇게 하면 시스템에서 MySQL 서비스가 시작됩니다.

스크립트 저장

  1. ~/project 디렉토리에 userBinLog.sql이라는 새 파일을 생성합니다.

  2. 다음 코드를 userBinLog.sql 파일에 복사합니다.

  3. 빈 비밀번호를 가진 'Rong'이라는 새 사용자를 생성합니다.

    -- Create a new user named 'Rong' with a blank password
    CREATE USER 'Rong'@'localhost' IDENTIFIED BY '';
    

    이렇게 하면 빈 비밀번호를 가진 "Rong"이라는 새 사용자가 생성되고, 사용자가 로컬 머신에서 로그인할 수 있습니다.

  4. 최대 연결 수를 50 으로 설정합니다.

    -- Set the maximum number of connections to 50
    SET GLOBAL max_connections = 50;
    

    이렇게 하면 최대 연결 수가 50 으로 설정됩니다.

  5. 바이너리 로그 보존 기간을 15 일로 설정합니다.

    -- Set the binary log retention period to 15 days
    SET GLOBAL binlog_expire_logs_seconds = 15 * 24 * 60 * 60;
    

    이렇게 하면 바이너리 로그 보존 기간이 15 일로 설정됩니다.

스크립트 실행

  1. 다음 명령을 실행하여 MySQL 명령줄 인터페이스를 엽니다.

    mysql -uroot
    
  2. MySQL 프롬프트에서 다음 명령을 실행하여 userBinLog.sql 스크립트를 실행합니다.

    SOURCE ~/project/userBinLog.sql
    

    이렇게 하면 userBinLog.sql 스크립트의 SQL 문이 실행됩니다.

  3. 이제 프로젝트가 완료되었습니다. 다음 SQL 문을 실행하여 결과를 확인할 수 있습니다.

    SHOW VARIABLES LIKE "%max_connections%";
    SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
    use mysql;
    SELECT user, host FROM user WHERE user = 'Rong';
    

    이 문은 max_connectionsbinlog_expire_logs_seconds 변수의 현재 값과 생성한 사용자를 표시합니다.

다음 결과를 확인할 수 있습니다.

MariaDB [(none)]> SHOW VARIABLES LIKE "%max_connections%";
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| extra_max_connections | 1     |
| max_connections       | 50    |
+-----------------------+-------+
2 rows in set (0.001 sec)

MariaDB [(none)]> SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
+----------------------------+---------+
| Variable_name              | Value   |
+----------------------------+---------+
| binlog_expire_logs_seconds | 1296000 |
+----------------------------+---------+
1 row in set (0.000 sec)

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> SELECT user, host FROM user WHERE user = 'Rong';
+------+-----------+
| User | Host      |
+------+-----------+
| Rong | localhost |
+------+-----------+
1 row in set (0.001 sec)

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습