Ubuntu 20.04에 MySQL을 설치하는 방법 [빠른 시작]

Ubuntu 20.04에 MySQL을 설치하는 방법 [빠른 시작]

2022-05-31 last update

9 minutes reading Ubuntu 20.04 Quickstart Ubuntu Interactive MySQL Databases

소개


MySQL은 오픈소스 데이터베이스 관리 시스템으로 일반적으로 유행하는 LAMP(Linux, Apache, MySQL, PHP/Python/Perl) 창고의 일부로 설치된다.이것은 관계 모델을 실현하고 구조화된 조회 언어(더 널리 알려진 SQL)를 사용하여 데이터를 관리한다.
이 빠른 시작 강좌는 Ubuntu 20.04 서버에 MySQL 8.0 버전을 설치하는 방법을 설명합니다.

선결 조건


본 강좌를 배우려면 다음이 필요합니다.
  • Ubuntu 20.04 서버로 비루트 관리 사용자와 UFW 방화벽이 설치되어 있습니다.설정하려면 initial server setup guide for Ubuntu 20.04을 따르십시오.
  • 이 강좌에서는 이 페이지가 포함된 대화식 터미널을 사용하여 MySQL을 설치하고 구성할 수도 있습니다.다음 Launch an Interactive Terminal! 버튼을 클릭하여 시작합니다.

    1단계 - MySQL 설치


    ySQL을 설치하려면 최근에 업데이트된 서버의 패키지 인덱스가 없으면 먼저 서버의 패키지 인덱스를 업데이트합니다.
    1. sudo apt update
    그리고 mysql-server 패키지를 설치합니다.
    1. sudo apt install mysql-server
    ySQL이 실행 중인지 확인:
    1. sudo systemctl start mysql.service

    2단계 - MySQL 구성

    sudo을 사용하여 MySQL과 함께 제공되는 보안 스크립트를 실행합니다.
    1. sudo mysql_secure_installation
    이것은 MySQL 설치에 대한 보안 옵션을 변경할 수 있는 일련의 힌트를 안내합니다.첫 번째 프롬프트에서는 MySQL 암호의 강도를 테스트하는 데 사용할 인증 암호 플러그인을 설정할지 묻는 메시지가 표시됩니다.
    인증 암호 설정 플러그인을 선택하면 스크립트에서 암호 인증 수준을 선택해야 합니다. 가장 약한 것은 0이고 가장 강한 것은 2입니다.
    Output
    Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
    다음 프롬프트는 MySQL 루트 사용자의 암호를 입력하고 확인하는 것입니다.
    Output
    Please set the password for root here. New password: Re-enter new password:
    그리고 스크립트는 방금 입력한 비밀번호를 계속 사용하거나 새 비밀번호를 입력하는지 물어볼 것입니다.암호가 마음에 드는 경우 Y을 입력하여 스크립트를 계속합니다.
    Output
    Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
    여기에서 Y을 누르고 ENTER을 누르면 모든 후속 문제의 기본 설정을 받아들일 수 있습니다.

    단계 3 - 전용 MySQL 사용자 생성 및 권한 부여


    설치 후 MySQL은 데이터베이스를 관리하는 데 사용할 수 있는 권한이 있는 루트 사용자 계정을 만들지만 관리 기능 외에는 사용하지 않는 것이 좋습니다.이 단계에서는 MySQL 루트 사용자를 사용하여 새 사용자 계정을 만들고 권한을 부여하는 방법에 대해 설명합니다.
    루트 MySQL 사용자로 데이터베이스에 연결:
    1. sudo mysql
    참고: 다른 튜토리얼에 MySQL을 설치하고 루트 사용자에게 암호 인증을 사용하려면 다음 명령을 사용하여 MySQL 셸에 액세스해야 합니다.
    1. mysql -u root -p
    ySQL 프롬프트에 액세스하면 CREATE USER 문을 사용하여 새 사용자를 만들 수 있습니다.다음과 같은 일반 구문을 따릅니다.
    1. CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
    사용자의 인증 플러그인을 선택할 때 여러 가지 선택이 있습니다.앞에서 언급한 auth_socket 플러그인은 강력한 보안을 제공하여 유효한 사용자가 비밀번호를 입력하지 않아도 데이터베이스에 접근할 수 있기 때문에 매우 편리하다.그러나 원격 연결도 방지할 수 있다. 외부 프로그램이 MySQL과 상호작용을 해야 할 때 원격 연결은 일을 복잡하게 만든다.
    또는 구문의 WITH authentication plugin 부분을 완전히 생략하여 사용자가 MySQL의 기본 플러그인 caching_sha2_password을 사용하여 인증할 수 있습니다.다음ocmmand에서 caching_sha2_password을 사용하여 인증을 하는 사용자를 만듭니다.sammy을 기본 사용자 이름으로 변경하고 password을 선택한 강력한 암호로 변경하십시오.
    1. CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
    참고: 일부 PHP 버전에서 알려진 문제가 발생하여 caching_sha2_password에 문제가 발생했습니다.이 데이터베이스를 PHP 응용 프로그램(예: phpMyAdmin)과 함께 사용할 계획이라면 사용자를 만들어야 할 수도 있습니다. 이 플러그인은 여전히 안전하지만 오래된 mysql_native_password 플러그인을 사용하여 인증을 합니다.
    1. CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    확실하지 않으면 항상 caching_sha2_plugin을 사용하여 인증하는 사용자를 만들고 다음 명령을 사용하여 ALTER을 인증할 수 있습니다.
    1. ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    새 사용자를 만들면 적절한 권한을 부여할 수 있습니다.
    예를 들어 다음 명령은 사용자의 전역 권한을 CREATE, ALTERDROP 데이터베이스, 테이블과 사용자에게 부여하고 서버의 모든 테이블에서 INSERT, UPDATEDELETE 데이터를 부여합니다.또한 SELECT으로 데이터를 조회할 수 있습니다.GRANT 문을 실행하여 sammy을 사용자의 MySQL 사용자 이름으로 교체하여 사용자에게 권한을 부여합니다.
    1. GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
    경고: 일부 사용자는 MySQL 사용자 ALL PRIVILEGES에게 다음과 같이 루트 사용자 권한과 유사한 광범위한 수퍼유저 권한을 제공하기를 원할 수 있습니다.
    1. GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
    이러한 광범위한 권한은 이 MySQL 사용자에게 접근할 권리가 있는 모든 사람이 서버의 모든 데이터베이스를 완전히 제어할 수 있기 때문에 쉽게 부여해서는 안 된다.
    다음은 FLUSH PRIVILEGES 명령을 실행하는 것이 좋습니다.
    1. FLUSH PRIVILEGES;
    그런 다음 MySQL 클라이언트를 종료할 수 있습니다.
    1. exit
    나중에 새 MySQL 사용자로 로그인하려면 다음 명령을 사용합니다.
    1. mysql -u sammy -p
    -p 플래그를 사용하면 MySQL 클라이언트가 인증을 위해 MySQL 사용자의 암호를 입력하라는 메시지를 표시합니다.

    결론


    이제 서버에 기본 MySQL 설정이 설치되었습니다.다음은 다음 단계를 수행할 수 있는 몇 가지 예입니다.
  • Set up a LAMP stack 또는 a LEMP stack
  • Practice running queries with SQL
  • Manage your MySQL installation with phpMyAdmin