본문 바로가기
Server&Infra/Linux

CentOS 7 MySQL 5.7 설치, 인코딩 설정, 원격접속(GPG-KEY 에러 해결)

by Deoking 2022. 11. 30.
반응형

Overview

CentOS 7 환경에 MySQL 5.7을 설치하고 인코딩 설정, 원격접속 등 간단한 설정 방법에 대해 기술합니다.

- 설치환경 : Linux/CentOS 7

 


1. 설치

아래 명령어로 MySQL과 Server를 설치합니다.

# MySQL 5.7 설치.
sudo yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# MySQL Server 설치.
sudo yum -y install mysql-community-server

 

설치 시,
PG-KEY 만료로 아래와 같은 에러가 발생하여 설치가 되지 않는 경우, GPG-KEY의 업데이트가 필요합니다.

The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository.

해결 방법 1. 다음 명령어를 실행하여 최신 버전의 GPG KEY를 import 합니다.

sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

해결 방법 2. /etc/yum.repos.d/에 있는 mysql repo파일의 gpgkey행에 최신 GPG KEY 링크로 수정해 줍니다.

...
gpgkey=https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
...

 

설치가 완료되면 mysqld 서비스를 시작합니다.

sudo systemctl start mysqld

정상적으로 실행이 되면,
임시 비밀번호가 생성되고 mysqld.log 파일 안에서 임시 비밀번호를 확인할 수 있습니다.

# 비밀번호 확인
# ex) A temporary password is generated for root@localhost: <비밀번호>
sudo vi /var/log/mysqld.log

확인한 비밀번호로 MySQL에 접속합니다.

# login
mysql -u root -p

비밀번호 재 설정이 필요한 경우 아래와 같이 변경합니다.

# 비밀번호 재설정
ALTER USER 'root'@'localhost' IDENTIFIED BY 'insertpassword';
FLUSH PRIVILEGES;

 

2. 설정

인코딩 설정

mysql의 기본 charset은 latin1입니다. 때문에 한글이 깨져서 저장됩니다. 
때문에 기존 latin1을 모두 utf8로 변경해 줍니다.

# MySQL 설정 파일을 실행.
sudo vim /etc/my.cnf

아래 설정파일 내용을 참고해서 수정합니다.

# <my.cnf>

[client]
default-character-set = utf8

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

character-set-server=utf8
collation-server=utf8_general_ci
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

 

원격접속 설정

MySQL 설치 시 기본적으로 로컬에서만 접속이 가능하도록 설정되어 있습니다. 하지만 경우에 따라 원격으로 접속해야 하는 상황이 발생합니다. 이를 위해 원격접속 설정을 해보겠습니다.

우선, 현재 설정된 유저의 접속가능 IP를 확인합니다.

# 유저 확인.
use mysql;
select host,user,authentication_string from user;

# 조회 결과.
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *2D1506440A0476B04CA9A8641E85D0B029368077 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+

확인결과, root 사용자는 localhost에만 접속이 가능하도록 설정되어 있습니다.

외부에서 접속이 가능하도록 설정하기 위해 아래 몇 가지 예시를 참고 바랍니다.
- locahost : 내부접속
- % : 외부접속

# 모든 ip에서 접속 허용
GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '패스워드';
FLUSH PRIVILEGES;

# 특정 ip대역에 접속 허용
GRANT ALL PRIVILEGES ON *.* TO '아이디'@'111.222.%' IDENTIFIED BY '패스워드'; 
FLUSH PRIVILEGES;

# 특정 단일 ip에서 접속시 허용
GRANT ALL PRIVILEGES ON *.* TO '아이디'@'111.222.33.44' IDENTIFIED BY '패스워드';
FLUSH PRIVILEGES;

 설정이 안료 되면 외부에서 접속이 가능한지 테스트를 진행합니다.

 


Conclusion

MySQL 5.7 을 설치하고 기본적인 설정방법에 대해 알아보았습니다. 
-
본 글은 개인적 기록을 목적으로 작성하였습니다.
작게나마 도움 되셨기를 바라며, 더 좋은 의견이나 잘못된 부분이 있다면 댓글을 남겨주세요~

 

 

반응형

'Server&Infra > Linux' 카테고리의 다른 글

CentOS 7 jdk 설치하기(OpenJDK 11)  (0) 2022.11.30
NVM 설치 및 Node.js 설치  (0) 2022.11.21
Linux/CentOS 7 vim 설치 및 설정  (0) 2022.11.18

댓글