세팅버전 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
'Mysql' 카테고리의 다른 글
[DB] Index 의 사용 (0) | 2021.11.10 |
---|---|
[MySQL] 텀블러의 MySQL 대용량 데이터 관리 전략 (0) | 2021.06.22 |
select 한 내용을 다른 table에 insert 하는 방법 (0) | 2019.10.30 |
MySQL Workbench 로 DB 업데이트 하기 (0) | 2018.07.17 |
Mysql 백업 mysqldump 사용 (0) | 2017.06.20 |