Skip to content

조회 수 7666 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
MySQL 데이터베이스의 생성과 삭제
--------------------------------------------------------------------------------------
- 작성자 : 김혁중(티니) [sky(golbangi or at)tini4u.net]
- 작성일 : 2006-07-06
- 사이트 : http://linux.tini4u.net/
- 원제목 : MySQL 데이터베이스의 생성과 삭제
- 환 경 : CentOS 4.3, MySQL 4.1
- 키워드 : mysql
--------------------------------------------------------------------------------------

이번 강좌는 MySQL을 사용하기위한 데이터베이스 생성과 삭제에 대해서 알아보도록 하겠습니다.

1. MySQL 데이터베이스 생성
MySQL의 데이터베이스를 생성하는 방법은 mysqladmin 유틸리티를 이용하는 방법과
mysql 클라이언트를 이용해서 SQL 문을 이용하는 방법 2가지가 있습니다.
하지만 필자는 SQL문을 이용하는 방법을 알려드리도록 하겠습니다.

⊙ 데이터베이스 생성 형식
mysql> CREATE DATABASE DB_Name;


# 예제
[root@localhost]# mysql -u root -p mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.20-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE foobar;
Query OK, 1 row affected (0.01 sec)


2. MySQL 데이터베이스 사용자 등록 (mysql.user)
MySQL 데이터베이스를 생성했으면 이제 DB를 사용할 사용자를 등록해줘야 됩니다.
여기서 생성되는 사용자는 시스템 계정 사용자와는 별개입니다.

- 데이터베이스 사용자 테이블 컬럼 확인
MySQL 데이터베이스 사용자 테이블은 mysql.user 입니다.
여기서 mysql.user라고 표현하면 mysql 데이터베이스의 user 테이블을 의미 합니다.
이것은 SQL 구문에서 축약형으로 사용되는 것이며 형식은 DB_Name.TableName 입니다.
그리고 DB 사용자 테이블의 컬럼수는 MySQL 버전마다 다르므로 반드시 확인해야 됩니다.
MySQL 4.1의 경우 mysql.user 테이블에는 총 31개의 컬럼이 있으며 사용자에 대한 권한을 설정하는
*_priv 컬럼 갯수는 21개와 기타 설정되는 부분 7개가 있습니다.

[root@localhost]# mysql -u root -p mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.20-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW columns FROM user FROM mysql; (혹은 mysql> desc mysql.user;)

위의 결과값의 예제를 보고 싶으면 아래 링크를 참조하시기 바랍니다.
http://linux.tini4u.net/lecture/database/mysql_user.html

- 데이터베이스 사용자 생성 (방법1)
※ SQL문은 반드시 세미콜론(;)으로 끝나야 되므로 그냥 엔터를 치게 되면 -> 표시가 나오면서
이어서 쓰겠다는 의미가 됩니다.

⊙ 데이터베이스 사용자 등록 형식
mysql> INSERT INTO mysql.user (Host, User, Password)
   -> VALUES('HostName', 'DB_User', PASSWORD('DB_Password'));

여기서 주의할점은 테이블 이름(ex: user)과 ( 사이를 붙여서 입력하면 에러가 나므로 띄워쓰기를
잘해야됩니다.
=> 올바른방법 : INSERT INTO mysql.user (Host,User,.....)
=> 잘못된방법 : INSERT INTO mysql.user(Host,User,.....)

# 예제
mysql> INSERT INTO mysql.user (Host, User, Password)
   -> VALUES('localhost', 'foobar', PASSWORD('123456'));
Query OK, 1 row affected (0.01 sec)

※ 참고로 hostname 부분에는 3가지가 올 수 있습니다.
localhost : MySQL이 설치되어 있는 서버에서만 접속이 가능하도록 설정
100.100.100.100 : 100.100.100.100의 IP를 사용하는 곳에서만 접속이 가능하도록 설정
% : 모든호스트에서 접속이 가능하도록 설정

- 데이터베이스 사용자 생성 (방법2)
위의 방법1과 다른 방법으로도 사용자 생성이 가능한데, 이것은 모든 권한을 일일히 설정해주는
방법입니다.
방법1에서 권한을 일일히 설정하지 않고 생성해준 이유는 mysql.user 테이블의 컬럼에서
기본설정값으로는 모든 권한에 대해서 N 이기 때문 입니다.
※ 필자는 길게 입력해야되는 방법2보단 간편하게 사용할 수 있는 방법1을 자주 이용합니다.

⊙ 데이터베이스 사용자 등록 형식
mysql> INSERT INTO mysql.user VALUES
   -> ('HostName','DB_User','DB_Password','N','N','N','N','N','N','N','N',......);

여기서 맨 뒤의 'N' 부분은 사용자에 대한 권한을 설정하는 부분은 반드시 컬럼갯수를 맞춰야 됩니다.
위에서 컬럼갯수를 확인했을때 권한을 설정하는 *_priv 컬럼갯수는 21개 였고
기타 설정하는 부분은 7개가 있었으므로 총 28개의 컬럼갯수를 맞춰서 설정해줘야 됩니다.

# 예제
mysql> INSERT INTO mysql.user VALUES
   -> ('localhost','foobar','123456','N','N','N','N','N','N','N','N','N','N'
   -> ,'N','N','N','N','N','N','N','N','N','N' ,'N','','','','','0','0','0');
Query OK, 1 row affected (0.00 sec)


3. MySQL 데이터베이스 유저 권한 설정 (mysql.db)
MySQL 데이터베이스와 사용자를 생성했으면 이제 데이터베이스의 권한을 설정해줘야 됩니다.

- 데이터베이스 권한 테이블 컬럼 확인
MySQL 데이터베이스 권한 테이블은 mysql.db 입니다.
물론 DB 권한 테이블의 컬럼수도 MySQL 버전마다 다르므로 반드시 확인해야 됩니다.
MySQL 4.1의 경우 mysql.db 테이블에는 총 15개의 컬럼이 있으며 DB에 대한 권한을 설정하는
*_priv 컬럼 갯수는 12개 입니다.

[root@localhost]# mysql -u root -p mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.20-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SHOW columns FROM db FROM mysql; (혹은 mysql> desc mysql.db;)

위의 결과값의 예제를 보고 싶으면 아래 링크를 참조하시기 바랍니다.
http://linux.tini4u.net/lecture/database/mysql_db.html

- 데이터베이스 유저 권한 설정
데이터베이스의 권한을 설정하는것은 데이터베이스 사용자생성 방법2와 비슷 합니다.
컬럼을 확인하고 그 컬럼에 맞춰 권한을 설정해주면 되는 것이죠.

⊙ 데이터베이스 권한설정 형식
mysql> INSERT INTO mysql.db VALUES
   -> ('localhost','DB_Name','DB_User','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

여기서 맨 뒤의 'Y' 부분은 DB에 대한 권한을 설정하는 부분은 반드시 컬럼갯수를 맞춰야 됩니다.
위에서 컬럼갯수를 확인했을때 권한을 설정하는 *_priv 컬럼갯수는 12개 였으므로
총 12개의 컬럼갯수를 맞춰서 설정해주시면 됩니다.

# 예제
mysql> INSERT INTO mysql.db VALUES
   -> ('localhost','foobar','foobar','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
Query OK, 1 row affected (0.00 sec)


4. MySQL 데이터베이스 삭제
⊙ 데이터베이스 삭제 형식
mysql> DROP DATABASE DB_Name;


# 예제
[root@localhost]# mysql -u root -p mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.20-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> DROP DATABASE foobar;
Query OK, 0 rows affected (0.01 sec)


5. MySQL 데이터베이스 유저 권한 삭제
⊙ 데이터베이스 권한삭제 형식
mysql> DELETE FROM mysql.db WHERE user = 'DB_User';


# 예제
mysql> DELETE FROM mysql.db WHERE user = 'foobar';
Query OK, 1 row affected (0.01 sec)


6. MySQL 데이터베이스 사용자 삭제
⊙ 데이터베이스 권한삭제 형식
mysql> DELETE FROM mysql.user WHERE user = 'DB_User';


# 예제
mysql> DELETE FROM mysql.user WHERE user = 'foobar';
Query OK, 1 row affected (0.00 sec)

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234