운영체제 이야기/Linux(CentOS)

[CentOS7] mysql8.x Community server 설치하기

한희성 2021. 4. 22.
반응형

Centos7 + MySQL Community server 8.x 설치 해봅시다.

그동안 블로그에는 늘 5.7버전만 다루다보니.. 이번에 새로 8.x를 설치 하려고 하니 많이 애 먹었습니다...

 

1. MySQL rpm 패키지 링크 가져오기

dev.mysql.com/downloads/mysql/

 

MySQL :: Download MySQL Community Server

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS FreeBSD Source Code Select OS Version: All Wind

dev.mysql.com

2. 설치 하려는 운영체제에 맞게 선택 후 yum Repository 를 설치 할 예정이기 때문에 아래 링크 클릭

 

우클릭하여 링크 복사 !!

/get/mysql80-community-release-el7-3.noarch.rpm

 

2. rpm 명령어를 이용하여 레포지토리  추가

rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

 

설치 확인

yum repolist all | grep mysql

 

3. mysql server 설치

 

2023-01-02 : GPG Key 만료 에러로 인한 스크립트 추가

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

 

yum install mysql-server

 

실행 및 중지 명령어

systemctl status mysqld
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
systemctl enable mysqld
systemctl disable mysqld

 

4. mysql 실행 및 접속

mysql -uroot -p

 

5. 임시 비밀 번호 확인 및 접속

1. 접속
8.x 버전부터는 임시 비밀번호를 찾아서 접속

grep 'temporary password' /var/log/mysqld.log

 

2. 임시 비밀번호 변경
(하기 앞서 비밀번호 규칙이 꽤나 빡세져서 자기가 늘 쓰던 비밀번호를 상용하기 위해서는 보안 규칙을 내려야한다
그렇지 않으면 다음과 같이 현재 요구하는 정책이 맞지 않다는 에러가 난다.)

 

2-1. 정책 수정하기

 

vi /etc/my.cnf

 

[mysqld] 부분의 아래 3줄 추가

#캐릭터셋
character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci

#비밀번호 정책

validate_password.policy=LOW

 

systemctl restart mysqld

 

3. 비밀번호 변경


mysql -uroot -p

ALTER USER 'root'@'localhost' IDENTIFIED BY '변경할 비밀번호';

flush privileges;

 

6. 외부 접속 설정 및 권한 설정

#create user 'root'@'ip 또는 대역' identified by '비밀번호';
#grant all privileges on *.* to 'root또는 원하는계정'@'본인IP';
create user 'root'@'%' identified by '비밀번호';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;

 

특정 db 만 권한 주기
create user 'user'@'%' identified by 'user1234';
grant all privileges on dbname.* to 'user'@'%';
flush privileges;

 

권한 삭제

delete from mysql.user where User ='삭제할 아이디';

delete from mysql.db where User ='삭제할 아이디';

flush privileges;

반응형

댓글

💲 추천 글