11. Mysql 5.7.24 설치 및 설정하기

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  RSS 방지선  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------





## 현재 우분투 패키지로 설치가능한 Mysql 버전이 몇인지 확인해보기

sudo apt-cache policy mysql-server

sudo apt-cache policy mysql-server-5.7


## 네이버 비즈니스 플랫폼은 Mysql 5.7.19 를 안정화버전으로 제공하고 있으며,

## 아마존 라이트세일은 Mysql 5.7.23 을 안정화버전으로 제공하고 있다.

## 우리는 5.7.24 로 설치한다.


## 우분투 패키지 업데이트를 한번 해준다.

sudo apt update



## Mysql 5.7 버전을 설치하도록 한다.

## mysql-server 와 mysql-server-5.7 은 같은 것이긴 하나,

## 추후 업데이트나 버전관리 용이성을 위하여,

## mysql-server 패키지로 설치하도록 한다.

## 반드시 root 계정으로 설치해주도록 한다. (왠지 그래야 한다)

su -

sudo apt install mysql-server


## 중간에 관련된 패키지를 모두 설치할거냐고 묻는 창이 나오면 [Y/N]

## Enter 키 또는 Y 를 입력한 뒤 Enter 키를 입력한다.


## 그리고 중간에 분홍색 창이 뜨면서 Mysql 기본암호를 설정하라고 나온다.

## 암호를 잊으면 변경하기 까다로우니 반드시, 제대로 입력하도록 한다.



## 설치되었는지 확인

sudo /etc/init.d/mysql status


sudo netstat -ntlp | grep mysqld


## 설치되어 있는 데이터베이스를 확인

sudo mysql -uroot -p -e'show databases'

## 설치시에 입력한 Mysql 비밀번호 입력하여 확인


## 테이블들을 확인해보자

sudo mysql -uroot -p

use mysql

show tables;


## Mysql 서비스 시작 명령어

service mysql start


## Mysql 서비스 종료 명령어

service mysql stop



## Mysql 한글 설정

## Mysql 은 기본 언어셋이 latin1 로 되어있음.

## latin1 로 되어있을 경우 한글 입력시 깨지는 문제가 발생함.

## 그렇기 때문에, 설치 후 반드시 한글 설정을 해주어야 함.

## 한글 설정에 사용할 파일은 mtsql.cnf 이다.

cd /etc/mysql/conf.d

ls

sudo vi mysql.cnf


## 처음에는 mysql.cnf 파일을 열어보면 아래와 같다.

## 내용을 모두 지운뒤, 새로 작성하도록 한다.


## 새로 mysql.cnf 에 입력되는 내용은 아래와 같다.

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

character-set-server=utf8

collation-server=utf8_general_ci

init_connect = set collation_connection = utf8_general_ci

init_connect = set names utf8


[mysql]

default-character-set=utf8


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

default-character-set=utf8


[client]

default-character-set=utf8


[mysqldump]

default-character-set=utf8




## mysql.cnf 파일을 정상적으로 수정하였다면, mysql 을 재시작한다.

sudo /etc/init.d/mysql restart


## 한글 설정이 반영되었는지 확인

## Server characterset, Db characterset, Client characterset, Conn. characterset 이 utf8 로

## 변경되었다면 설정이 반영된 것임.

mysql -uroot -p

status



## 테스트로 사용할 database 를 생성해준다

mysql -uroot -p

create databse test_pjh;

show databases;



## 계정을 만들 것이다.

## mysql5.7 이상은 create user 구문을 사용해서 계정을 만든다.

## -- 사용자 계정 생성

## create user '아이디'@호스트 identified by '비밀번호';

##  -- 로컬 접속계정 생성

## create user '아이디'@localhost identified by '비밀번호';

##  -- 모든 IP로 접속가능한 계정 생성

## create user '아이디'@'%' identified by '비밀번호';

create user 'test_user'@'%' identified by 'test_password';


## 생성한  계정에 권한을 부여한다.

##  -- 사용자 권한 설정

##  GRANT ALL PRIVILEGES ON 데이터베이스명.테이블명 TO '아이디'@'호스트' IDENTIFIED BY '비밀번호';

##  -- 모든 데이터베이스, 모든 테이블, 모든 IP 접속 허용

##  GRANT ALL PRIVILEGES ON *.* TO '아이디'@'%' IDENTIFIED BY '비밀번호';

##  -- 특정 데이터베이스, 모든 테이블  모든 IP 접속 허용

##  -- ex) test 라는 데이터베에스의 모든 테이블, 모든 IP 접속하도록 권한부여

##  GRANT ALL PRIVILEGES ON test.* TO '아이디'@'%' IDENTIFIED BY '비밀번호';

##  -- 모든 데이터베이스, 모든 테이블, 특정 대역 IP 접속 허용

##  -- ex) 192.168 로 시작하는 IP에 대해 접속하도록 권한 부여

##  GRANT ALL PRIVILEGES ON *.* TO '아이디'@'192.168.%' IDENTIFIED BY '비밀번호';

##  -- 모든 데이터베이스, 모든 테이블, 특정 IP만 접속 허용

##  -- ex) 192.168.22.33 IP에 대해 접속하도록 권한 부여

##  GRANT ALL PRIVILEGES ON *.* TO '아이디'@'192.168.22.33' IDENTIFIED BY '비밀번호';

##  -- 모든 데이터베이스, 모든 테이블, 로컬에서만

##  GRANT ALL PRIVILEGES ON *.* TO '아이디'@localhost IDENTIFIED BY '비밀번호';

grant all privileges on test_pjh.* to ‘test_user’@’%’ identified by ‘test_password’;


## 변경된 권한을 시스템에 반영한다 (권한 적용)

flush privileges;


## 생성한 사용자 계정을 조회해보자.

## 먼저 mysql 데이터베이스를 선택하여 user 테이블을 조회한다.

## 조회결과를 보면 방금 생성한 계정과 접속 가능한 host 가 나온다.

use mysql;

select host, user from user;



## 외부에서 mysql 에 접속이 가능하도록 하기

## 아마존 라이트세일 페이지에서

## 해당인스턴스 메뉴 -> 관리 -> 네트워킹 -> 방화벽 부분을 수정해준다.

## MySQL/Aurora 부분을 추가해준뒤, 저장해준다.


## LISTEN IP 대역을 변경해준다.

cd /etc/mysql/mysql.conf.d

ls -al

sudo vi mysqld.cnf



## bind-address 부분을 찾아가자


## 해당부분을 주석처리해주자.

## 또는 bind-address = 0.0.0.0 으로 해줘도 같은 설정이다.


## mysql 을 재시작하자.

## 서버쪽 mysql 설정은 일단 완료되었다.

sudo service mysql restart



## mysql 을 좀더 편하게 사용하기 위하여 GUI 툴인 phpmyadmin 을 사용하도록 해보자.

## phpmyadmin 을 mysql 서버에다가 설치하여 사용해도 되지만

## 이렇게 되면, phpmyadmin 페이지가 웹서버로 등록되어, 공개되는 꼴이니

## 이것은 하고 싶지가 않다.

## 그러면 어떻게 해야하나, 개인 개발용 컴퓨터에 아파치를 통하여 웹서버를 생성한 후

## 그곳에 phpmyadmin 을 설치하여 mysql 서버에 원격으로 접속하여 사용하도록 할 것이다.

## 다음게시물을 참고하자.







댓글

Designed by JB FACTORY