본문 바로가기

DB

MySQL – 1

 

MySQL – 1

 

Mysql에 접속하는 방법에 대해 알아보자. 먼저 이론적으로 알아보면, 클라이언트가 Mysql서버에 접속할 경우 1. 접근 가능한 아이디인지, 호스트인지에 대한 권한 체크 -> 2. 테이블, 컬럼 등에 대한 CRUD권한 체크 -> 3. 로그인 순으로 이루어진다. 이 때 1,2과정에서 Mysql 데이터베이스에 있는 db, user, host, tables_priv, columns_priv의 테이블에 접근권한을 확인한다. 먼저 user 테이블에 대해 권한을 확인하는데 user테이블에서 Y인 경우 슈퍼유저의 권한이 생긴다. 즉 모든 db에 접근할 수 있고 CRUD도 가능하게 된다. 이 테이블에서 N이면 다음으로 host,db 테이블에 접근하여 각 db host에 대해 접근가능한지를 확인하고 그 다음 table, column순으로도 확인한다. Proc_priv 테이블은 stored procedure에 대해 접근권한이 있는지를 체크한다. Stored procedure db내에서 사용 가능하게 정의한 사용자 정의 함수 정도로 생각하면 된다.

 

Mysql에 접속하려면 커맨드 창에서 mysql –h 호스트 –u 아이디 –p비밀번호 를 입력하면 접속할 수 있다. 이때 호스트를 쓰지 않으면 localhost로 자동접속된다.

 

Path 설정을 해주지 않았을 경우 실행이 되지 않으니 참고하기 바란다.

 

실제 실행을 해보면 아래와 같다.



접속하였다면 이 계정에 어떤 데이터베이스가 있는지 알아보는 명령어인

show databases; 를 입력하자


이제 사용하고자 하는 데이터베이스로 들어가야 하는데 이때에는

Use 데이터베이스 명; 의 명령어를 사용한다.

 

Use mysql


데이터 베이스 명이 바뀌었다면 이 데이터베이스에 어떠한 테이블이 있는지 알아보자.

Show tables; 라는 명령어를 입력한다.



그러면 존재하는 테이블을 보여준다. 테이블에 관한 정보를 얻고싶다면,

Show 테이블명; 명령어를 입력한다.

 

다음은 권한을 부여하는 명령어에 대해서 알아보자. 권한을 줄 때에는 grant라는 명령어 사용하는데, 계정이 없을 경우 생성도 같이 된다.

 

예를 들면,

Mysql> grant all(UPDATE, SELECT ) privileges on db.* to 아이디@’호스트’ identified by ‘비밀번호’;


Msyql> flush privileges;


이렇게 입력하면 된다.

Grant 명령어를 사용하여 등록한 경우에는 flush privileges; 명령어를 입력하여 플러쉬를 해주어야 한다. 그렇지 않으면 디비를 재시작해주어야 한다.

 

삭제 권한을 실행할때에는 revoke 명령어를 사용한다.

예문

Msyql> revoke privileges all(UPDATE, SELECT ) on db.* from 아이디@’호스트’;


 

데이터 베이스를 백업할때에는 ysqldump 라는 명령어를 사용한다.

 

예문

Mysql> mysqldump –u 아이디 –p 데이터베이스 이름 > 파일이름

아이디는 root db명이 test1 백업할 파일명은 dbtest 라고 하면,

Mysql> mysqldump –u test1 –p dbtest > dbtest.sql

계정에 비밀번호가 있을경우 비밀번호를 입력하라는 명령어가 나온다. 비밀번호를 입력하면 sql파일로 백업이 된다.

 

테이블만 백업할 경우

Mysql> mysqldump –u 아이디 –p 데이터베이스이름 테이블이름  > 파일이름

으로 하면 된다.

 

복구하는 방법은 ‘>’ ‘<’로만 바꾸면 된다.

 

Mysql> mysql –u 아이디 –p 데이터베이스 이름 < 파일이름

'DB' 카테고리의 다른 글

DB SQL single quote(작은따옴표) insert  (0) 2014.05.02
ALTIBASE 내장 함수  (0) 2012.07.20
CURSOR 커서  (0) 2012.07.12
DB 엔진 종류(MyISAM, InnoDB)  (1) 2011.03.30
JDBC와 ODBC의 차이점  (0) 2011.03.30