Skip to content

조회 수 7818 추천 수 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)

List of Articles
번호 제목 글쓴이 날짜 조회 수
» MySQL 데이터베이스의 생성과 삭제 ADMINPLAY 2008.10.30 7818
85 mysql 설치 시 LinuxThreads 에러 ADMINPLAY 2008.10.30 6739
84 mysql 테이블이 손상된 경우 myisamchk ADMINPLAY 2008.10.30 7809
83 초기 mysql root 패스워드 설정 및 비번 변경과 root 비번 잃어 버렸을 경우 변경하는 방법 ADMINPLAY 2008.10.30 11410
82 mysql 자주쓰는 명령어 정리 ADMINPLAY 2008.10.30 7306
81 mysql data디렉토리 변경 ADMINPLAY 2008.10.30 9424
80 Mysql 버전별 케릭터셋 지원여부 (euckr / utf-8) ADMINPLAY 2008.11.04 7985
79 mysql root에 아무권한이 없어 작업이 불가능한 경우 ADMINPLAY 2008.11.11 7314
78 Mysql max_connection 늘리기 ADMINPLAY 2008.11.11 8393
77 MySQL 테이블 복구하기 (쉴 프롬프트에서..) ADMINPLAY 2008.11.11 7622
76 mysql 자세한 복구 방법 #1 ADMINPLAY 2008.11.11 6896
75 mysql 자세한 복구 방법 #2 ADMINPLAY 2008.11.11 7548
74 InnoDB 와 MyISAM ADMINPLAY 2008.12.14 8739
73 Mysql 버전확인 ADMINPLAY 2008.12.23 9985
72 mysql 외부접속 ADMINPLAY 2009.02.07 8896
71 mysql5.0 계정 생성시 ssl_cipher 에러 ADMINPLAY 2009.03.03 9711
70 SSL을 이용한 MySQL 연결 ADMINPLAY 2009.03.03 10923
69 MySQL max connection 값 변경 1 ADMINPLAY 2009.03.09 9844
68 mysqli 컴파일중 re2c 에러발생! ADMINPLAY 2009.03.17 9513
67 slow Query 조사 ADMINPLAY 2009.03.17 9201
Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234