운영체제/MySQL

MySQL db생성과 사용자 권한 등록

에스테반 2012. 10. 30. 13:52

출처 : http://ucnn.tistory.com/35

----------------------------------------------------------------------------------

MySQL 실행(mysql -u root -p) 후 show databases; 명령을 내리게 되면


기본적으로 생성되어있는


mysql> show databases;


+-------------+
| Database |
+-------------+
| mysql |
| test |

+-------------+
2 rows in set (0.06 sec)


mysql 과 test 두 녀석이 보인다.


여기서 mysql은 시스템 관리를 위해 설정된 데이터베이스 이다.

이곳 주요 기능은 계정별 password관리 사용자 권한을 설정 해주는 곳이기에


* 절대로 지우면 안된다 *


test는 말 그대로 테스트 디비


자! 본격적으로 디비를 생성하고 비밀번호와 아이디를 부여해보자.

mysql> create database ju;


잘 만들어 졌을까?


mysql> show databases;

+-------------+
| Database |
+-------------+
| mysql |
| test |

| ju |

+-------------+
3 rows in set (0.06 sec)


제대로 생성된거 같으니 ju 디비에 비번을 걸어줘야 하는데

그 전에 해야할게 mysql 에 사용자를 등록해줘야 한다.

사물함 겉면에다 이름을 써넣는 거라고 할까..나..


mysql> use mysql

mysql> insert into user (host,user,password)

-> values ('localhost','zzong','password('1234'));


(호스트명) (사용자명) (비밀번호)


5.0 이전 버전에서는 위와같이 쉽게 사용자 등록이 되었으나


5.0 부터는 다음과 같이 바뀌었다 ...


INSERT INSERT INTO user
(Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv,
Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv,
Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,
Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv, ssl_type,
ssl_cipher, x509_issuer, x509_subject, max_questions, max_updates, max_connections, max_user_connections)
VALUES('localhost', 'zzong', PASSWORD('****'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0);


설명하기도 복잡하니.. VALUES ( ) 요기만 잘 설정해서 등록하도록 하자.

로컬호스트에 쫑 이라는 아이디로 비번을 **** 로 사용자를 추가하겠다는 뜻이다.


자 그럼 제대로 추가됐는지 보자











맨 마지막 부분에 zzong 로 설정되어 있으며 password 는 암호로 관리되어 있다.


miojj 라는 이름표

mio 라는 이름표 를 생성한 디비(ju) 에 가져다 붙이면

각 디비들은 고유의 아이디와 비번을 가지게 되어 보안성을 띠게 된다.


자!이제 디비에 자물쇠를 달아서 혼자만 사용할 수 있도록 하자.


mysql > insert into db

-> values ('localhost','lee','zzong','y','y','y','y','y','y','y','y','y','y','y','y');

(디비명)(사용자명) (설정권한의 갯수를 모두 지정)


'y' 가 열두개 쓰여진 이유?


참고로 보는 책에는 단순히

삽입, 검색, 수정 등 이 권한은 10개로 되어있기 때문에 권한의 사용여부를

'y','n'로 표시한다 라고 쓰여져 있지만 권한의 갯수는 버전별로 틀리다.

현재사용버전은 12개 인줄도 모르고 한 시간이나 네이버를 헤매다니...


* 확인 방법은 아래 사진 참조 *

















Host, Db, User 을 뺀 나머지 ..


자! 자물쇠를 달았으면 ' 디비가 내 것이다' 라고 선포하자.


mysql > flush privileges;

( 설정한 권한의 적용 : 1. 컴퓨터 재부팅

2. flush privileges; )



이제 디비가 제대로 열리는지 확인해보기 위해

mysql 을 다시 시작해보자


mysql > \q

C:> mysql -u zzong -p

Enter password : ****


조금 헷갈렸던 부분인데 C:> mysql -u zzong -p 가운데 zzong 는

디비명을 쓰는 것이 아니라 사용자 아이디를 쓰는 것. root 접속법 때문에 헷갈렸다.


문제가 없다면 웰컴 투 마이에스큐엘 모니터 어쩌구 저쩌구 나오면서

성공적으로 접속이 완료된다.


마지막으로 root 에도 비번을 걸어주자. '보안철저'


mysql> use mysql;
mysql> update user set password=password('123456') where user='root';
Query OK, 2 rows affected (0.03 sec)
Rows matched: 2 Changed: 2 Warnings: 0


mysql> flush privileges; <--- 적용
flush privileges; 를 하지 않으면 mysql에서 빠져나와서 root 로그인이 안된다.

확인

mysql> select host, user, password from user;


+----------------------------------------------------------------+
| Host user password |
+----------------------------------------------------------------+
| localhost root 2e01146f5c065853 |
| localhost.localdomain root 2e01146f5c065853 |
+----------------------------------------------------------------+


이제 다음으로 해야 할 일은 테이블 만들어서 디비에 자료를 저장해보고

자료를 웹페이지에 출력해보자.


간단하게 회원가입 페이지 작성 !