1.mysql 설치
1)MySQL 버전을 확인
sudo apt-cache search mysql-server
2)MySQL 설치 명령어
sudo apt-get install mysql-server-5.7
3)MySQL 5.7 설치 확인
4)root 계정으로 로그인
su
(su는 root 권한으로 리눅스를 사용한다.)
su계정 비밀번호 설정
sudo passwd root
5)mysql 5.7 IP주소와 MySQL 포트 확인
netstat -ntlp | grep mysql
6)My SQL Database 조회
mysql -uroot -p -e 'show databases'
2.MySQL 한글 설정
1)경로 이동
cd /etc/mysql/conf.d
2)mysql.cnf(한글 설정에 사용할 파일)
sudo nano mysql.cnf
3)위 2번으로 접속하면 [mysql]을 지운다.
4) 내용 입력 후 Ctrl+X -> Y 입력 -> 엔터
[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
5)MySQL 재시작
sudo /etc/init.d/mysql restart
6)mysql root 계정 로그인
mysql -uroot -p
7)status 입력 하여 아래 부분이 utf8로 바뀌었는지 확인
Server charcterset: utf8
Db characterset : utf8
Client characterset:utf8
Conn. characterset :utf8
3.MySQL사용자 계정 생성 및 외부접속 설정
1)mysql root 계정으로 접속
mysql -uroot -p
2)DB 생성 및 조회
-- 데이터베이스 생성
create database 데이터베이스 이름;
-- 데이터베이스 조회
show databases;
3)계정 생성
-- 사용자 계정 생성
create user '아이디'@호스트 identified by '비밀번호';
-- 로컬 접속계정 생성
create user '아이디'@localhost identified by '비밀번호';
-- 모든 IP로 접속가능한 계정 생성
create user '아이디'@'%' identified by '비밀번호';
2)새로 생성한 계정에 권한 부여
-- 사용자 권한 설정
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 '비밀번호';
ex)
3)권한 적용
flush privileges;
4) 생성한 사용자 계정을 조회해 보자 먼저 mysql 데이터베이스를 선택하여 user 테이블을 조회한다. 조회 결과를 보면 방금 생성한 계정과 접속 가능한 host가 나온다.
-- mysql 데이터베이스 선택
use mysql;
-- user 테이블
select host, user from user;
4.Mysql 포트 외부접속 허용하도록 방화벽 설정 변경
아래는 그냥 기본 루트해서 해주면 된다. 컨트롤+z로 기본에서 실행하면 됨.
1) MySQL 포트 외부접속 허용
sudo ufw allow (MySQL 포트번호)/tcp
ex)
2)마지막으로 LISTEN IP 대역을 변경한다. 명령어를 입력하여 해당 경로로 이동한다.
cd /etc/mysql/mysql.conf.d
3)mysqld.cnf 파일편집
sudo nano mysqld.cnf
bind-address 앞에 # 을 추가한다. 그리고 Ctrl+X → Y 입력 → 엔터 키를 눌러 저장한다.
4) mysqld 재시작
sudo /etc/init.d/mysql restart
'Base > Database' 카테고리의 다른 글
[Database]LPAD/RPAD 함수 사용법 (0) | 2020.07.14 |
---|---|
[Database] INSTR, LENGT 함수 사용법 (0) | 2020.07.14 |
[Database] SQL select 문 사용법 (0) | 2020.07.14 |
[Database] sql developer 설치하기 (0) | 2020.07.13 |
[Database] 윈도우 에서 oracle 설치하기 (0) | 2020.07.13 |