2018년 12월 23일

CentOS 7.x 에서 MySQL 8.x 설치하기

1. MySQL 설치하기

MySQL 을 yum 명령을 사용하여 설치하는 것은, 사실은 MariaDB 를 설치하는 것이다. 설치를 위하여 먼저 MySQL패키지 정보를 제공하는 MySQL community Yum Repository 사이트를 방문해야 한다.



설치를 원하는 패키지 이름을 선택한 다음 다운로드를 위한 링크를 아래와 같이 완성한다.

아래와 명령으로 먼저 레파지토리를 추가한다.
1
#sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

이제 MySQL 서버를 설치한다.
1
# yum install mysql-server

2. MySQL 시작하기

MySQL 서버는 다음 명령으로 시작한다.
1
# systemctl start mysqld
시작이후에는 다음 명령으로 서버 상태를 확인할 수 있다.
1
# systemctl status mysql
1
 


서버 설치 과정에서 임시 비밀번호가 생성되는데 이는 아래의 명령으로 확인할 수 있다.
1
# grep 'temporary password' /var/log/mysqld.log

3. MySQL 설정

MySQL 기본적으로 조금은 안전하지 않는 디폴트 설정(원격 )을 위한 보안 관련 옵션들 설정을 위한 보안 스크립트를 제공하고 있는데 아래와 같은 명령으로 실행할 수 있다.


 /usr/bin/mysql_secure_installation


스크립트를 실행하면 새로운 root 비밀번호 설정, 원격 익명 사용자 계정 제거, 로컬 이외의 곳에서 root접근 비활성, 데트트 데이터베이스 제거를 선택할 수 있다. 비밀번호는 12자리 이며 1이상의 대문자 + 1개이상의 소문자 + 1개이상의 숫자 + 1개이상의 특수문자조합으로 생성해야 한다.

자세한 건 다음 링크를 참고한다.
MySQL Reference Manual



추가로 다음의 명령을 통하여 원격 접속을 위한 방화벽을 설정한다. 

1
#firewall-cmd --zone=public --permanent --add-service=mysql


4. MySQL 테스트 하기

설치 및 설치 정보를 확인하기 위하여 mysqladmin 도구를 사용하여 접속한다.
1
#mysqladmin -u root -p version
다음과 유사한 메시지를 보게된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysqladmin  Ver 8.0.13 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Server version  8.0.13
Protocol version 10
Connection  Localhost via UNIX socket
UNIX socket  /var/lib/mysql/mysql.sock
Uptime:   21 hours 59 min 10 sec
 
Threads: 2  Questions: 13095  Slow queries: 0  Opens: 395  Flush tables: 2  Open tables: 222  Queries per second avg: 0.165

4. MySQL 계정생성 하기

 이제 새로운 데이터베이스와 계정을 생성한다. 여기에서는 데이터베이스 이름은  testdb , 새로운 사용자 이름은  testuser , 그리고  비밀번호는 password 를 사용했다. 먼저 아래와 같이 MySQL shell 을 실행한다.

1
mysql -u root -p

이제 아래와 같은 스크립트를 사용하여 데이터베이스 및 사용자를 생성한다.
1
2
3
4
5
6
-- testdb 생성
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- test 계성 생성
CREATE USER 'test'@'%' IDENTIFIED BY 'password';
-- testdb에 대한 권한을 test 에게 부여한다.
GRANT ALL PRIVILEGES ON testdb.* TO 'test'@'%' WITH GRANT OPTION;


이제 클라언트에서 새롭게 생성한 계정으로 접속을 한다. 프로그램은 "MySQL Workbench"를 사용했다.
접속시에 아래와 같은 오류가 발생하는 경우 두가지 방법인 있다. 이는 MySQL 8.x버전부터는 caching_sha2_password 을 지원하고 있는데 이전 버전의 클라이언트 버전들은 지원하고 있지 않아서다.

authentication plugin 'caching_sha2_password'
cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2):
image not found

  1. 서버에 default-authentication-plugin=mysql_native_password 설정을 추가한다.
  2. "MySQL Workbench" 프로그램은 최신 버전으로 업데이트 한다.

이글에서는 클라이언트 버전을 최신 버전으로 업데이트 하여 사용하였다.


댓글 없음:

댓글 쓰기