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 |