티스토리 뷰

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 파일을 다운로드 받는다.


혹은,

# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm


위의 명령어로 바로 리눅스 서버에서 다운로드 및 repository 추가를 한다.



첫번째 방법으로 다운로드 받았을 경우에는 FTP를 이용해 rpm파일을 리눅스 서버로 옮긴다. 


# rpm -Uvh mysql-community-release-el7-5.noarch.rpm


그런 다음, rpm 파일이 위치한 곳으로 가서 위의 명령어로 repository를 추가한다.



# yum repolist


저장소를 확인해보면 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



댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함