Skip to main content

MySQL 사용자 추가와 DB생성, 그리고 권한부여

기초적인 내용인데 DB를 직접 다루지 않다보니 자꾸 까먹습니다. 

여기를 참조했습니다. 

 

사용자 생성

여러가지 방법이 있는데 중요한 부분은 사용자를 만들때 비밀번호를 설정하느냐 아니면 권한을 설정할때 비밀번호를 설정하느냐 정도 차이입니다. 

create user 사용자ID;

create user 사용자ID@'localhost' identified by '비밀번호';

create user '사용자ID'@'localhost' identified by 'PASSWORD';

여기서 'localhost'부분은 "서버가 위치한 컴퓨터에서 접속할 때"라는 의미입니다. 만약 이것을 특정 IP로 바꾸면 "해당 IP주소에서 접속할 때"가 됩니다. 

 

데이터베이스 생성

더 단순하게 할 수도 있지만 명시적으로 character set을 utf8로 고정해주는 것은 언제나 안심이 됩니다. 

mysql > create database DB명 default character set utf8;

 

권한부여

해당 데이터베이스에 속한 모든 것에 모든 권한을 부여한다는 명령입니다. 만약 앞에서 비밀번호를 설정하셨다면 identified by 'PASSWORD'부분은 쓰지 않아도 됩니다. 

mysql> GRANT ALL privileges ON DB명.* TO UserId@'locahost' IDENTIFIED BY 'PASSWORD';

mysql> GRANT ALL privileges ON DB명.* TO 'UserId'@'locahost' IDENTIFIED BY 'PASSWORD';

모든 작업이 끝나면 반드시 적용을 시켜줍니다. 

mysql > flush privileges; 

 

주의사항

여기서는 언제나 'localhost'만을 입력하는 예를 보여드렸지만, 만약 서버가 있는 컴퓨터 뿐만 아니라 외부에서도 접속이 필요하다고 한다면 반드시 동일한 내용으로 UserID@'192.168.0.1' 과 같이 접속하게 되는 주소를 적어 한번 더 입력해 주셔야 합니다.
(결국 같은 ID에 대해 두개의 행을 입력해야 한다는 것입니다)

혹시라도 "아무 IP에서든 다 접속하겠다"고 생각하신다면 이 부분을 '%'로 바꿔주시면 됩니다. 좋지 않습니다. 언제나 제한을 두세요. 

특징적인 것은, identified by 'PASSWORD' 부분을 이용하시면 localhost에서 접속할때와 외부에서 접속할때의 비밀번호를 아예 다르게도 설정할 수 있다는 것입니다.