Recent Posts
Recent Comments
Link
06-30 12:53
Today
Total
관리 메뉴

삶 가운데 남긴 기록 AACII.TISTORY.COM

CentOS 7 MySQL 5.7 설치 및 설정 본문

DEV&OPS/Linux & Cloud

CentOS 7 MySQL 5.7 설치 및 설정

ALEPH.GEM 2022. 4. 28. 13:34

 

CentOS 7 에서 5.7을 설치하고 설정하는 과정을 다뤄봅니다.

아래 과정은 root 계정으로 실행하셔야 합니다.

su -

 

wget 설치

yum install wget

 

 

MySQL 다운로드

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

그러면 현재 실행 경로에 rpm 파일이 다운로드 됩니다.

 

 

MySQL 설치

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

 

 

MySQL 서버 설치

설치하다가 public key for mysql-community-server-5.7.37-1.el7.x86_64.rpm is not installed

메시지가 나오면서 설치가 되지 않는 경우도 있는데

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

를 입력 후에 MySQL 서버를 다시 설치 하시기 바랍니다.

설치가 완료되었다면 mysqld 가 어딘가에 설치되어 있을 것입니다.

yum install mysql-server

설치하다가 질문이 나오면 y 를 입력하면됩니다.

find / -name 'mysqld' 2>/dev/null

정상 설치가 되었다면 mysqld가 아마 /usr/sbin/mysqld 경로에 설치되었을겁니다.

 

 

 

mysqld 서비스 시작

systemctl start mysqld

 

 

보안 스크립트 실행

MySQL 5.7.6부터 RPM 배포판으로 설치하는 경우 mysqld safe가 필요 없으니 이 과정은 생략합니다.

이전 버전의 경우 root 로그인 같은 보안 스크립트를 실행합니다.

mysql_secure_installation

이 과정에서 root 암호를 물어보면서 새 비밀번호를 입력합니다.

하나 이상의 대문자, 숫자, 특수 문자를 포함한 12자리 암호를 입력해야 합니다.

익명 사용자의 삭제 및 root 계정의 리모트 로그인을 막을 것인지에 대해 질문이 나옵니다.

 

 

환경 설정

MySQL 5.7.6부터 RPM 배포판으로 설치하는 경우 mysqld safe가 필요 없어서 설치 되지 않아 옵션 설정을 변경해줍니다.

systemctl stop mysqld
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld

 

 

root 로그인

암호 입력 없이 로그인 합니다.

mysql -u root

 

 

root 비밀번호 변경

5.7부터 비밀번호 컬럼이 password에서 authentication_string으로 변경되었습니다.

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('새비밀번호') WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
mysql> exit

 

 

MySQL 정지

systemctl stop mysqld

 

 

MySQL 환경 옵션 설정 해제

다음 접속 부터는 암호를 입력하는 정상(일반)적으로 로그인 할 수 있도록 환경 옵션 설정을 해제 해줍니다.

systemctl unset-environment MYSQLD_OPTS

 

 

MySQL 시작

systemctl start mysqld

 

 

MySQL root 암호 로그인

mysql -u root -p

로그인 했지만 쿼리를 실행하면

You must reset your password using ALTER USER statement before executing this statement. 메시지가 나온다면 비밀번호를 재설정 합니다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '새비밀번호';
mysql> FLUSH PRIVILEGES;

대문자,소문자,숫자,특수문자 합쳐서 12자리 이상해야합니다.

패스워드 설정이 너무 길고 복잡해서 불편한 경우 password validation 을 삭제 하면 되는데 다음과 같이 입력합니다.

mysql> uninstall plugin validate_password;

 

 

사용자 추가

mysql> create user '사용자ID'@'localhost' identified by '새비밀번호';

 

 

사용자 권한 부여

mysql> grant all privileges on *.* to '사용자'@'%';

권한 부여에 관한 더 자세한 내용은 아래 게시글을 참고하십시오.

https://aacii.tistory.com/140

 

MySQL 권한 부여/회수

MySQL 콘솔 접속 mysql -u root -p :루트 패스워드 입력 데이터베이스(DB) 확인 show databases; 사용자(user) 확인 select * from mysql.user; tester 계정 추가 create user 'tester'@'localhost' identified by..

blog.aacii.net

 

 

원격 접속 설정

https://aacii.tistory.com/152

 

Mysql 원격 접속 허용(linux)

에러 메시지 Host 'IP주소' is not allowed to connect to this MySQL server 라고 나오면서 mysql에 원격 접속이 안 되는 경우 로컬 접속 mysql -u root -p 확인 쿼리 실행 mysql> SELECT HOST,USER FROM mysql.u..

blog.aacii.net

 

 

리눅스 방화벽 설정

$ sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

$ sudo firewall-cmd --reload

$ sudo firewall-cmd --list-ports

MySQL 기본 포트는 3306 이며 SSH를 위한 22번을 열어둡시다.

만약 포트를 변경하고 싶다면 /etc/my.cnf 설정파일에 port=원하는포트 로 수정하면 됩니다.

 

 

 

 

 

728x90