자바스크립트 문법

centos7 MySQL8 설치+DB생성+유저권한

자무카 2022. 8. 23.

이런 크고 중요한 프로그램은 충돌도 많기 때문에, 항상 기존 관련 설치 확인 후 깨끗이 정리한 후 시작.

https://zero-gravity.tistory.com/338  어마어마하게 정리를 잘하는 분이다. 존경하는 마음을 담아...메모...로

1. Delete old version

1-1. mysql 버전 확인

yum list installed | grep mysql
yum remove -y mysql-community-*

1-3. mysql 폴더 삭제

rm -rf /var/lib/mysql

2. Install new version

2-1. yum repository 등록

yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

주소는 https://dev.mysql.com/downloads/repo/yum/ 이곳에서 버전에 맞는 Download 버튼을 클릭하고 들어가서 "No thanks, just start my download." 우클릭하고 링크 복사.

2-2. yum respository 등록 확인

yum repolist enabled | grep "mysql.*"

2-3. 8버전 mysql 설치

yum install -y mysql-server

 

2-4. 설치된 mysql버전 확인

mysqld -V

3. Configuring the server

3-1. mysql 서비스 시작

systemctl enable mysqld # 재부팅 시 자동 시작하도록 설정
systemctl start mysqld # 서비스 시작
systemctl status mysqld # 서비스 구동 여부 확인

3-2. 임시 비밀번호 확인

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

3-3. root 계정 접속

mysql -u root -p

위 명령어를 입력하면 비밀번호를 입력하라고 뜬다. 3-2에서 확인했던 임시 비밀번호를 입력하고 엔터를 뙁 치면 아래와 같이 접속이 정상적으로 이루어짐을 확인할 수 있다.

3-4. root 계정 비밀번호 변경

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

만약 비밀번호를 간단하게 하고 싶은데 "Your password does not satisfy the current policy requirements"라는 경고문이 뜨면서 변경이 되지 않는다면, 일단 'a1b2c3ABC!@' 같이 아무렇게나 바꿔주고 비밀번호 정책을 수정하자.

임시 비밀번호를 다른 비밀번호로 변경하지 않으면, 정책 수정이고 뭐고 작동을 하지 않기 때문에 계정 비밀번호를 일단 변경해주는 것이 우선이다.

3-5. 비밀번호 정책 수정

mysql> SHOW VARIABLES LIKE 'validate_password%';

 

대소문자, 숫자, 특수문자, 8자리.. 테스트용 DB에 이렇게까지는 강력한 보안은 귀찮기만 하다.

mysql> SET GLOBAL validate_password.length = 5; # 다섯자리까지만..
mysql> SET GLOBAL validate_password.number_count = 0; # 숫자 필요없엉
mysql> SET GLOBAL validate_password.policy=LOW; # 정책 수준은 낮게..
mysql> SET GLOBAL validate_password.mixed_case_count = 0; # 대소문자 필요없엉
mysql> SET GLOBAL validate_password.special_char_count = 0; # 특수문자 필요없엉

그리고 다시 3-4에서 사용했던 명령어로 비밀번호를 간단하게 변경.

3-6. 외부 접속 허용

mysql> use mysql
mysql> select host, user from user;

호스트와 유저를 확인해보면 root 계정의 경우 localhost로만 접속이 허용되어 있다.

root 계정을 외부에서 접속 가능하게끔 변경할 수도 있지만, 아무리 테스트DB라도 그러면 위험하니까 새 계정을 생성해서 권한 부여를 해주자.

mysql> CREATE USER '아이디'@'%' identified by '비밀번호'; # 외부접속만 가능한 계정 생성
mysql> CREATE DATABASE DB이름 default character set utf8;
mysql> GRANT ALL PRIVILEGES ON DB이름.* to '아이디'@'%'; # 해당 DB에 대한 권한 부여
mysql> flush privileges; # 새로고침 똭!
mysql> select host,user from user; # 다시 확인

댓글