개발/Database

mysql 5.5 db 생성 및 사용자 권한 주기

내가지니 2011. 3. 23. 15:30

* dbname : 데이터베이스명
* dbuser : 사용자 아이디
* dbpassword : 사용자 비밀번호

SHOW DATABASE;
CREATE DATABASE dbname;

USE mysql;

//create user 'username'@'localhost'  identified by 'userpassword';
//create user ' username'@'%'  identified by ' userpassword '; 

INSERT INTO USER(HOST, USER, PASSWORD) VALUES ('localhost', 'dbuser ', PASSWORD('dbpassword'));
INSERT INTO USER(HOST, USER, PASSWORD) VALUES ('127.0.0.1', 'dbuser ', PASSWORD('dbpassword'));
INSERT INTO USER(HOST, USER, PASSWORD) VALUES ('%', 'dbuser ', PASSWORD('dbpassword'));

GRANT ALL PRIVILEGES ON dbname.* TO dbuser@localhost IDENTIFIED BY 'dbpassword';
GRANT ALL PRIVILEGES ON dbname.* TO dbuser@127.0.0.1 IDENTIFIED BY 'dbpassword';
GRANT ALL PRIVILEGES ON dbname.* TO dbuser@'%' IDENTIFIED BY 'dbpassword';  //외부 접속 허용

//GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'localhost' WITH GRANT OPTION;
//GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'127.0.0.1' WITH GRANT OPTION;
//GRANT ALL PRIVILEGES ON dbname.* TO 'dbuser'@'%' WITH GRANT OPTION;


SELECT HOST, USER, PASSWORD FROM USER ORDER BY USER, HOST;

FLUSH PRIVILEGES;

외부에서 접속이 되지 않고 Can't get hostname for your address 라는 메세지가 발생하면 /etc/my.cnf 파일을 열어서
skip-name-resolve 를 추가해주면 된다.

# The MySQL server
[mysqld]
skip-name-resolve


 skip-name-resolve는 client 에서 server로 접속시에 DNS Lookup 과정을 생략해 줍니다. localhost 로 접속하는 경우는 문제가 없지만 IP 로 접속하는 환경에서는 DNS 서버가 느리거나 아님 장애 발생시에 해당 옵션을 설정해 주므로써 DB 접속시에 문제점을 해결하실 수 있습니다.