Mysql

MySQL 5.7 세팅 (CentOS7)

먹세 2019. 12. 3. 15:54

세팅버전 MySQL 5.7.28

 

MySQL 5.7 이전과 이후로 세팅이 좀 다르다.

 

전체 순서

* root 계정으로 실행

1. wget 설치

2. MySQL 다운로드

3. MySQL 5.7 설치

4. MySQL 5.7 서버 설치

5. MySQL 5.7 데몬 시작

6. 비밀번호 재설정

7. 사용자 추가 & 권한 부여

8. 외부 접속 설정 (firewall)

 

 

1. wget 설치

# yum install wget

 

2. mysql 다운로드

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

 

3. MySQL 5.7 설치

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

 

4. MySQL 5.7 서버 설치

# sudo yum install mysql-server

 

5. MySQL 5.7 데몬 시작

# sudo systemctl start mysqld

 

6. 비밀번호 재설정

# The existing password for the user account root has expired. Please set a new password.

New password:

MySQL 5.7 이후부터 root 비밀번호 validation : 대문자, 숫자, 특수문자 포함된 12자리 이상의 패스워드만 통과

 

이후에 로그인이 제대로 되지 않는 경우 ==

# systemctl stop mysqld

# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"

# systemctl start mysqld

# mysql -u root //root 계정 비번 없이 접속 가능

# UPDATE mysql.user SET authentication_string = PASSWORD('여기에 새로운 비밀번호 입력') WHERE User = 'root' AND Host = 'localhost';

# FLUSH PRIVILEGES;

# exit

 

# systemctl stop mysqld

# systemctl unset-environment MYSQLD_OPTS //다시 정상 로그인

# systemctl start mysqld

# mysql -u root -p //정상 로그인

# use mysql;

했을때 아래와 같은 메시지가 뜬다면, 비밀번호 재설정을 다시 해줘야 함.

You must reset your password using ALTER USER statement before executing this statement.

 

# ALTER USER 'root'@'localhost' IDENTIFIED BY '여기에 새로운 비밀번호 입력';

했을때 아래와 같은 메시지가 뜬다면, 비밀번호 규칙에 맞게 다시 설정 해야 함 (대문자, 숫자, 특수문자 포함된 12자리 이상의 패스워드만 통과)

Your password does not satisfy the current policy requirements

# FLUSH PRIVILEGES;

# use mysql;

 

비밀번호 validation이 까다로우니, 이것을 없애기 위한 설정

# mysql -u root -p

# uninstall plugin validate_password;

 

7. 사용자 추가 & 권한 부여 (root 로 mysql 접속 후 작업)

# create user '새로 만들 사용자 ID'@'localhost' identified by '새로운 사용자의 비밀번호'; //localhost 로만 접근 가능 (외부에서 워크벤치 등으로 접근 안됨)

# create user '새로 만들 사용자 ID'@'%' identified by '새로운 사용자의 비밀번호'; // 외부에서 워크벤치 등으로 접근 가능

# grant all privileges on *.* to '사용자 ID'@'%'; //데이터베이스의 모든 권한 부여

또는

# grant all privileges on *.* to '사용자 ID'@'%' identified by '새로운 비밀번호';; //데이터베이스의 모든 권한 부여하고 사용자 ID에 비번 변경

# FLUSH PRIVILEGES; //적용후에는 꼭 실행 해줘야 함

 

8. 외부 접속 설정 (firewall)

# yum install firewalld

# systemctl start firewalld

# systemctl enable firewalld

(서비스 재구동시에는 #firewall-cmd --reload 명령 사용)

//public은 zone 이름이며, 클라우드 시스템처럼 zone 형태로 방화벽 포트들을 관리할수 있음

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

//포트를 범위로 지정하기

# firewall-cmd --permanent --zone=public --add-port=5000-5100/tcp

//포트 삭제

# firewall-cmd --permanent --zone=public --remove-port=3306/tcp

//모든 접속을 허용하고 싶을때 (방화벽을 내리지 않고, zone을 trusted로 변경)

# firewall-cmd --set-default-zone=trusted

 

 

 

 

 

 

 

반응형