리눅스

CentOS 7 에서 MySQL 5.7 yum 설치 스크립트

Link2Me 2021. 10. 23. 15:04
728x90

CentOS 7 에서 MySQL 5.7 버전을 yum 설치하는 스크립트이다.

MariaDB, MySQL 5.6 버전과는 약간 명령어가 다른 것이 있으니 주의가 필요하다.

 

## mariadb 설치된 것 한꺼번에 지우기
rpm -qa | grep mariadb >list
 
# vi list로 해서 삭제 안할 리스트는 선별 제거한다.
sudo yum -y remove $(awk '{print $1}' <list)
 
rpm -qa | grep MariaDB
 
# 기존 MariaDB에서 사용된 파일 삭제 필요
rm --/var/lib/mysql
 
 
# MySql 5.7 버전
yum -y install wget
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-server
 
 
######### MySQL setting ######################
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
 
# 기본 설정되는 임시패스워드 알아내기
cat /var/log/mysqld.log | grep 'temporary password'
 
 
# Maria DB 보안 설정하기
mysql_secure_installation
알아낸 임시패스워드 입력하고 영문 소문자, 대문자, 숫자, 특수문자를 포함한 패스워드로 변경
 
vi /etc/my.cnf
[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
bind-address = 0.0.0.0
 
[mysql]
default-character-set=utf8
 
[mysqldump]
default-character-set=utf8
 
# MySQL 데몬 재시작
systemctl restart mysqld
 
mysql -root -p
비밀번호
 
status
show variables like 'c%';
 
# MYSQL root 암호 변경 방법
mysql -root -p
비밀번호 입력
 
use mysql;
alter user 'root'@'localhost' identified with mysql_native_password by '비밀번호';
flush privileges;
select host, user, plugin, authentication_string, password_last_changed from user;
 
quit
 
##########################################
####### 실제 적용 예제 ######
##########################################
// DB 생성
create database studydb default character set utf8;
 
# 비밀번호 정책 확인 (최소 8자리 이상이어야 한다)
show variables like 'validate_password%';
 
use mysql;
create user codefox@localhost identified by 'Autoset12#$';
grant all privileges on studydb.* to codefox@localhost;
flush privileges;
 
use mysql;
create user codefox@'192.168.1.25' identified by 'Autoset12#$';
grant all privileges on studydb.* to codefox@'192.168.1.25';
flush privileges;
 
# 백업하기
mysqldump -uroot ---databases studydb > studydb.sql
 
### 테이블 구조만 백업하기 ####
mysqldump -uroot ---no-data --databases studydb > studydb.sql
 
###############################################################################
# 샘플 테이블 생성
use studydb;
CREATE TABLE User (
  `uid` int(11) NOT NULL,
  `account` varchar(45) NOT NULL,
  `email` varchar(45) DEFAULT NULL,
  `phone_number` varchar(15) DEFAULT NULL COMMENT '전화번호',
  `created_at` datetime NOT NULL,
  `created_by` varchar(45) NOT NULL,
  `updated_at` datetime DEFAULT NULL,
  `updated_by` varchar(45) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
ALTER TABLE `user`
  ADD PRIMARY KEY (`uid`),
  ADD UNIQUE KEY `account` (`account`);
 
ALTER TABLE `user`
  MODIFY `uid` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
 
#######################################################################
# 방화벽 설정
yum -y install firewalld
 
# 방화벽 데몬 시작
systemctl start firewalld
 
# 서버 부팅 시 firewalld 데몬 자동 시작 설정
systemctl enable firewalld
 
firewall-cmd --permanent --add-service=http 
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=mysql
firewall-cmd --permanent --zone=public --add-port=3306/tcp
 
firewall-cmd --permanent --zone=public --add-port=8000/tcp
firewall-cmd --reload
firewall-cmd --list-all
 
#######################################################################
 

 

 

728x90