Computer >> 컴퓨터 >  >> 체계 >> Linux

Ubuntu에서 MySQL을 설치 및 구성하는 방법

MySQL은 데이터 유형이 서로 관련될 수 있는 단일 또는 다중 데이터 테이블로 데이터를 구성하는 강력하고 널리 사용되는 오픈 소스 RDBMS(관계형 데이터베이스 관리 시스템)입니다. SQL(Structured Query Language)은 RDBMS와 함께 작동하며 누군가가 방대한 양의 데이터를 저장하거나 관리하려는 경우 관계형 데이터베이스 및 SQL 서비스를 확보하게 됩니다.

이 문서에서는 Ubuntu 18.04 서버에서 MySQL을 구성하는 방법을 보여줍니다. 또한 인증을 활성화한 후 서비스 관리를 활성화하는 방법을 보여줍니다. 마지막으로 성공적인 구성을 확인하기 위해 서비스를 테스트하는 방법도 배우게 됩니다.

1단계:MySQL 클라이언트 설치

mysql-client 설치 서버에 원격으로 연결하려면:

sudo apt install mysql-client -y

클라이언트 버전을 확인하여 설치에 성공했는지 확인하십시오.

mysql -V

출력:

mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

이제 다음 명령을 사용하여 MySQL 서버와 원격 연결을 설정할 수 있습니다.

mysql -u <username> -p <password>-h HOSTNAME_OR_IP

2단계:MySQL 서버 설치

MySQL을 설치하기 전에 Ubuntu 서버가 올바르게 설치 및 구성되었는지 확인하십시오. Ubuntu 18.04 서버는 기본적으로 리포지토리에 최신 MySQL 버전 5.7을 포함합니다. apt 명령을 사용하여 다음과 같이 저장소에서 시스템 패키지를 업데이트합니다.

sudo apt update

이제 다음 명령을 사용하여 MySQL 서버 패키지를 설치하십시오:

sudo apt install mysql-server -y

3단계:MySQL 구성

사이버 보안 위협이 끊이지 않는 이 시대에 서버 설치 성공 후 기본 옵션을 변경하는 것이 표준입니다. 이 섹션에서는 원격 루트 로그인, 기본 사용자 계정 등과 같은 안전하지 않은 기본 옵션을 제거하기 위한 MySQL 서버 구성에 대해 안내합니다. MySQL은 간단한 보안 스크립트를 실행하여 모든 변경을 자동으로 수행하여 이 작업을 용이하게 합니다.

sudo mysql_secure_installation

스크립트는 MySQL 기본 보안을 변경하기 위해 예 또는 아니오 응답을 요청하는 여러 옵션을 표시합니다. 예를 들어, 플러그인을 설정하여 비밀번호를 확인하고 싶은지 묻는 첫 번째 프롬프트에서 라고 대답하세요. 계속합니다.

다음 프롬프트는 MySQL 루트 사용자 계정 암호를 설정하도록 요청합니다. Validate Password 플러그인을 활성화하면 세 가지 수준의 비밀번호 보안 정책 및 길이에 대해 비밀번호 강도를 설정할 수 있습니다.

암호 강도를 설정하기 위해 선택할 번호를 입력합니다. 그러면 시스템에서 새 비밀번호를 설정하고 확인을 위해 다음과 같이 다시 입력하라는 메시지가 표시됩니다.

Ubuntu에서 MySQL을 설치 및 구성하는 방법

비밀번호를 설정한 후 강도를 표시하고 계속할 것인지 묻는 것을 알 수 있습니다.

Ubuntu에서 MySQL을 설치 및 구성하는 방법

이제 다음 질문을 할 것입니다:

  1. 익명의 테스트 사용자를 제거하려면
  2. 루트 사용자의 원격 로그인 비활성화
  3. 테스트 데이터베이스 제거
  4. 모든 변경 사항을 저장하기 위해 권한 테이블 새로고침

Y 입력 기본 설정을 계속 사용하여 보안 규칙을 설정합니다.

Ubuntu에서 MySQL을 설치 및 구성하는 방법

이전 버전의 MySQL(5.7.6 이전)에서는 데이터베이스 디렉토리를 수동으로 초기화해야 합니다. 그 이후 버전의 경우 다음 명령을 실행하십시오.

mysqld –initialize

4단계:MySQL 사용자 인증 조정

MySQL 사용자 계정에 대한 암호 설정과 관계없이 기본 인증 설정은 연결 설정 중 암호 사용을 비활성화합니다. 대신 auth_socket의 도움으로 사용자를 자동으로 인증합니다. 플러그인. 플러그인은 사용성을 위한 훌륭한 기능이지만 원격 클라이언트에서 데이터베이스에 액세스하려는 경우에는 실용적이지 않습니다.

비밀번호 없이 데이터베이스에 접근하면 외부 프로그램이 접근할 때 작업 프로세스가 복잡해지기 때문에 이 섹션에서는 연결 설정 시 사용자를 인증하는 두 가지 방법을 요약합니다.

1. 비밀번호로 루트 사용자 인증

비밀번호를 통한 사용자 인증을 위해 "auth_socket에서 플러그인을 변경할 수 있습니다. "에서 "mysql_native_password로 ." 이를 위해 sudo mysql을 사용하여 MySQL 프롬프트 화면을 엽니다. 명령을 실행하고 다음과 같이 사용자 인증에 사용 중인 플러그인을 확인합니다.

SELECT user, authentication_string, plugin, host FROM mysql.user;
Ubuntu에서 MySQL을 설치 및 구성하는 방법

위의 스크린샷은 루트 클라이언트가 "auth_socket" 플러그인을 사용하여 자신을 인증하는 것을 보여줍니다. 비밀번호로 루트 클라이언트 인증을 초기화하려면 ALTER USER 문을 사용하여 "mysql_native_password" 플러그인을 설정하십시오.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

위의 변경 사항을 다음과 같이 저장합니다.

FLUSH PRIVILEGES;

"FLUSH PRIVILEGES" MySQL 문은 ALTER, INSERT, UPDATE 및 DELETE 절에 의해 만들어진 데이터베이스 테이블의 변경 사항을 저장합니다.


이제 각 사용자가 사용하는 인증 전략을 확인하고 루트 클라이언트에서 "auth_socket" 플러그인을 사용하지 않는지 확인하려면 다음 명령을 다시 실행하세요.

SELECT user,authentication_string,plugin,host FROM mysql.user;
Ubuntu에서 MySQL을 설치 및 구성하는 방법

이제 루트 사용자는 다음 명령을 통해 인증하여 서버에 연결할 수 있습니다.

sudo mysql -u root -p

2. 전용 사용자 만들기

mysql_native_password를 사용하지 않고 인증을 활성화하는 또 다른 방법은 다음과 같이 전용 사용자를 만드는 것입니다.

sudo mysql

새 계정을 만들고 모든 권한을 부여하여 새 사용자에게 관리 수준 제어를 할당합니다. 그런 다음 MySQL 프롬프트를 종료합니다. 이를 달성하려면 다음 SQL 쿼리를 하나씩 실행하십시오.

CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost' WITH GRANT OPTION;
exit

systemctl을 사용하여 MySQL 서비스 관리 및 테스트

systemctl enable을 사용하여 Ubuntu 서버 시작 시 실행되도록 서비스를 설정합니다. 다음과 같이 명령하십시오:

sudo systemctl enable mysql

또한 다음을 입력하여 서버가 실행되고 있는지 테스트할 수 있습니다.

sudo systemctl status mysql

또는

sudo systemctl status mysql.service
Ubuntu에서 MySQL을 설치 및 구성하는 방법

서비스는 MySQL 설치 후 자동으로 실행되지만 그렇지 않은 경우 다음 명령을 사용하여 서비스를 시작할 수 있습니다.

sudo systemctl start mysql

Ubuntu에서 MySQL 서버 시작하기

MySQL은 사용자 친화적이며 확장 가능하고 강력한 오픈 소스 데이터베이스 관리 시스템입니다. 또한 LAMP/LEMP 스택 모델 또는 웹 애플리케이션 기술의 필수적인 부분입니다. 이 관계형 데이터베이스 관리 시스템(RDBMS)은 최신 버전에서 간단한 설치와 쉬운 구성을 제공합니다.

이 기사는 MySQL 작동 방식 학습을 시작하는 데 도움이 되는 기본 MySQL 설정을 구축하는 방법을 안내합니다. 또한 기본 설정의 허점을 피하기 위해 구성의 몇 가지 중요한 초기 보안 조치를 다룹니다. 몇 가지 고급 보안 팁을 따르면 MySQL 보안에 대해 자세히 알아볼 수 있습니다.