티스토리 뷰
1. MySQL 설치 (5.6)
1-1. yum repository 추가
repository 다운로드 사이트로 이동 ☞ http://dev.mysql.com/downloads/repo/yum/
Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package 옆에 있는 Download 버튼을 클릭하여 rpm 파일을 다운로드 받는다.
위의 명령어로 바로 리눅스 서버에서 다운로드 및 repository 추가를 한다.
첫번째 방법으로 다운로드 받았을 경우에는 FTP를 이용해 rpm파일을 리눅스 서버로 옮긴다.
그런 다음, rpm 파일이 위치한 곳으로 가서 위의 명령어로 repository를 추가한다.
저장소를 확인해보면 mysql 관련한 저장소가 잘 추가되었음을 확인할 수 있다.
1-2. MySQL 패키지 설치
# yum -y install mysql-community-server
yum으로 MySQL 패키지를 설치한다.
2. MySQL 설정
2-1. my.cnf 설정 파일 변경
# vi /etc/my.cnf
[client]
default-character-set = utf8
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
별다른 설정을 해준 건 없고, 캐릭터셋과 관련해서 utf8로 설정하는 부분만 추가해줬다.
DB 경로를 바꾸려면 datadir을 수정해주면 되는데, 딱히 건들 필요는 없어보인다.
2-2. MySQL 서비스 시작
# /usr/bin/systemctl enable mysqld
# /usr/bin/systemctl start mysqld
2-3. MySQL 보안 설정 (옵션)
외부에 서비스를 하는 서버라면 mysql_secure_installation 스크립트를 통해 보안을 설정하는 것을 권장한다고 한다.
# /usr/bin/mysql_secure_installation
위와 같이 입력해주면, 자동으로 다음과 같은 것들이 YES로 설정된다.
- root 비밀번호를 설정할 것인가? [Y/n] Y
- root를 제외한 다른 유저를 삭제할 것인가? [Y/n] Y
- root의 원격 접속을 허용할 것인가? [Y/n] Y
- test 데이터베이스를 삭제할 것인가? [Y/n] Y
- privileges 테이블을 재시작할 것인가? [Y/n] Y
2-4. 포트 허용
# firewall-cmd --permanent --zone=public --add-port=3306/tcp
# firewall-cmd --reload
MySQL은 기본적으로 3306포트를 사용하고 있기 때문에 방화벽에서 3306 포트를 허용해줘야만 외부에서 접속이 가능하다.
여기까지 하면 MySQL 설치와 설정은 끝난 셈이다.
3. MySQL 사용자 관리 및 DB생성
3-1. root 로그인
# mysql -u root -p mysql
처음엔 비밀번호가 없으므로 비밀번호를 입력하라는 커서에서 그대로 엔터를 치면 root로 로그인할 수 있다.
3-2. root 비밀번호 변경
mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';
mysql> FLUSH PRIVILEGES;
root로 로그인 한 상태에서, 위와 같이 입력한다.
3-3. 데이터베이스(DB) 생성
mysql> create database DB이름 default character set utf8;
3-4. 외부 접속만 가능한 사용자 아이디 추가
mysql> create user '아이디'@'%' identified by '비밀번호';
위와 같이 사용자를 생성하면, SqlGate와 같은 클라이언트 툴로만 DB에 접속할 수 있고, 로컬 쉘에서는 직접 접속이 불가능하다.
3-5. 로컬 접속만 가능한 사용자 아이디 추가
mysql> create user '아이디'@'localhost' identified by '비밀번호';
위와 같이 사용자를 생성하면, 로컬 쉘에서만 접속이 가능하다.
3-6. 사용자에게 모든 권한 부여
mysql> grant all privileges on *.* to '아이디'@'%';
3-7. 사용자에게 특정 DB를 관리할 수 있는 권한 부여
mysql> grant all privileges on DB이름.* to '아이디'@'%';
3-8. 사용자 확인
mysql> select user, host from user;
☞ 참고한 사이트들
- mysql 설치 참고 - https://devops.profitbricks.com/tutorials/install-mysql-on-centos-7/
- 캐릭터셋 설정 참고 - http://webdir.tistory.com/217
- 사용자 관리 참고 - http://blog.opid.kr/237
- root 비밀번호 변경 참고 - http://egloos.zum.com/kwon37xi/v/1634694
'공장 (factory) > - Linux CentOS' 카테고리의 다른 글
[CenOS7] 새로운 하드디스크 추가하기. (0) | 2017.03.31 |
---|---|
[CentOS7] 나만의 파일공유 서비스! owncloud 설치. (1) | 2016.03.02 |
[CentOS7] You have new mail in /var/spool/mail/root (0) | 2015.10.14 |
[CentOS7] Subversion(SVN) 설치 및 설정 (2) | 2015.10.08 |
[CentOS7] SSH 보안 - 포트 변경 및 로그인 시도 아이피 차단 (5) | 2015.10.02 |