캠핑과 개발

# 버전별 MySQL user , db , database 생성하기
mysql 버전에 따라서 레코드 숫자가 틀려서 생성 할 때 마다 귀찮은 점이 있다.
적어 두고 생성시 복사해서 사용하는게 편리 하다.
반드시 ID , NAME , DATABASE 이름을 변경하여 사용하시기 바랍니다. 

MySQL 3

create database 데이타베이스명;
insert into user values ('localhost','아이디',password('비밀번호'),'N','N','N','N','N','N','N','N','N','Y','N','N','N','N');
insert into db values ('localhost','아이디','디비이름','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
flush privileges;


MySQL 4

create database 데이타베이스명;
insert into user values ('localhost','아이디',password('비밀번호'),'N','N','N','N','N','N','N','N','N','Y','N','N','N','N','N','N','N','N','N','N','N','','blob','blob','blob','0','0','0');
insert into db values ('localhost','아이디','디비이름','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
flush privileges;


MySQL 5

create database 데이타베이스명;
insert into user values ('localhost','아이디',password('비밀번호'),'N','N','N','N','N','N','N','N','N','Y','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','blob','blob','blob','0','0','0','0');
insert into db values ('localhost','아이디','디비이름','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
flush privileges;

 


커스텀 설정은 다음과 같은 명령어로 필드 값을 본뒤에 수정 하여 사용할 수 있습니다.
desc user;
desc db;
모든 작업 후 반드시 flush privileges; 로 적용합니다. (모든 작업은 가상으로 작업 된 뒤 적용 시점에 작동 됩니다.)
 

MySQL 데이타 베이스, 삭제하기
      내용 delete from user where user='해당유저이름';
delete from db where db='해당디비이름';
flush privileges; (적용)


사용자 추가

MYSQL에서 유저를 추가하는 방법은 두가지가 있습니다.
일반적으로는 유저를 위한 전용 데이터베이스를 하나 생성해 주고, 해당 데이터베이스에 접속할 권한을 주게 됩니다.
이 때 권한은 local에서만 접속할 권한을 주거나, JDBC등을 이용한다면 외부에서도 접속할 권한을 주어야 합니다.

0.. CREATE DATABASE 명령을 이용한  데이터베이스 신규 생성
1. CREATE USER와 GRANT 명령어 사용 (또는)
2. INSERT, UPDATE, DELETE를 사용해서 직접 관리 테이블을 수정하기를 통한 추가

기존 글을 찾아보면 2번의 내용이 많지만 전문가가 아니라면 개인적으로는 쉬운 1번을 추천합니다. 



먼저 root 유저로 로그인합니다. 암호가 없을 경우 
c:\mysql\bin> mysql -u root mysql

암호가 존재할 경우
c:\mysql\bin> mysql -u root  mysql -p

mysql에 접속한 후에 유저가 사용할 데이터 베이스를 만듭니다. 데이터베이스 명은 ps3_psn 으로 합니다.
mysql> create database ps3_psn; 

먼저 ryu라는 유저를 생성합니다. 암호는 ssf4로 하겠습니다.
mysql> create user 'ryu'@'localhost'  identified by 'ssf4';

ryu 유저에게 ps3_psn 데이터베이스를 로컬에서만 접속할 수 있게 권한을 줍니다.
mysql> GRANT ALL PRIVILEGES ON ps3psn.* TO 'ryu'@'localhost'
    ->     WITH GRANT OPTION;

ryu 유저에게 모든 데이터베이스를 로컬에서 접속할 권합을 준다면
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ryu'@'localhost'

ryu 유저에게 ps3_psn  데이터베이스에 원격에서도 접속할 권한을 줍니다. JDBC 등에서 사용하려면 이런 식으로 합니다.
mysql> GRANT ALL PRIVILEGES ON ps3_psn.* TO 'ryu'@'%'    ->
    WITH GRANT OPTION;

접속권한 보기
mysql> SHOW GRANTS FOR 'ryu'@'localhost';



유저 생성하고 권한 부여하기


1. test 유저를 생성하고 testdb라는 데이터베이스에 모든 권한 부여하기(단, 이 유저는 localhost 에서만 접근 가능하며 접근을 위해서 패스워드 필요)

mysql> grant all privileges on testdb.* to test@localhost identified by '패스워드';



2. test 유저는 모든 호스트에서 testdb에 접근 할 수 있지만 select, insert 권한만 가진다.

mysql> grant select, insert on testdb.* to test@'%' identified by '패스워드';


 3. test 유저는 192.168.0으로 시작하는 모든 컴퓨터에서 접근 가능하며 모든 DB에 모든 권한을 가진다.

mysql> grant all privileges on *.* to test@'192.168.0.%' identified by '패스워드';



 

[출처] http://blog.naver.com/forspeed4?Redirect=Log&logNo=130037742496
[출처] http://k502000.blog.me/30097017893
[출처] http://blog.omyworld.co.kr/entry/Mysql-user-생성-및-권한-부여