항상 세팅 부분은 어쩌다 한번씩 하다 보니 자꾸 까먹게 되어서 10년 넘게 따로 문서에 기록해뒀었는데 이젠 문서 찾기도 귀찮아서 블로그에 남김니다.mysql 계정 생성 하기
1. 사용할 DB를 생성합니다.
CREATE DATABASE 디비명;
“testdb” 라는 이름의 데이터베이스를 생성 합니다.
mysql> CREATE DATABASE testdb;
2. 사용할 계정을 생성합니다.
mysql> GRANT ALL PRIVILEGES ON [DB명].[테이블명(*)] TO [유저명]@[서버명] IDENTIFIED BY '[암호]' WITH GRANT OPTION;
데이터베이스명 : testdb
계정 이름: userid
게정 비밀번호: userpwd
접속을 localhost 에서만 허용하고 싶으면 다음 처럼 입력 합니다.
mysql> GRANT ALL PRIVILEGES ON testdb.* TO `userid`@`localhost` IDENTIFIED BY 'userpwd' WITH GRANT OPTION;
접속을 localhost 외 모두 허용하려면 “유저명@`%`” 를 추가 해야 합니다.
mysql> GRANT ALL PRIVILEGES ON testdb.* TO `userid`@`%` IDENTIFIED BY 'userpwd' WITH GRANT OPTION;
간혹 리눅스 서버에서 /etc/hostname 에 도메인명 (예: “mydomain.com”)이 지정되어 있는 경우 localhost 에서 접속이 안됩니다.
이때는 접속해야할 서버에 hostname 을 지정하여 “유저명@`mydomain.com`” 를 추가 해야 합니다.
mysql> GRANT ALL PRIVILEGES ON testdb.* TO `userid`@`mydomain.com` IDENTIFIED BY 'userpwd' WITH GRANT OPTION;
3. 계정 설정까지 다 되었으면 새로운 계정을 사용할 수 있도록 합니다.
mysql> FLUSH PRIVILEGES;
4. 예전 방식의 암호화를 사용할 경우 암호를 예전 방식으로 저장합니다.
mysql> use mysql; mysql> update user set password=password('비밀번호') where user='userid'; mysql> FLUSH PRIVILEGES;
5. mysql 5.5 이상일때 위에 것이 안될 수 있습니다. 그때는 다음과 같이 사용합니다.
접속을 localhost 에서만 허용하고 싶으면 다음 처럼 입력 합니다.
insert into user (host, user, password, ssl_cipher, x509_issuer, x509_subject, authentication_string) values ('localhost', '아이디', password('비밀번호'), '', '', '', ''); insert into db (host, db, user, select_priv, insert_priv, update_priv, delete_priv, create_priv, drop_priv, grant_priv, references_priv, index_priv, alter_priv) values ('localhost','디비명','아이디', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' );
접속을 localhost 외 모두 허용하려면 “유저명@%” 를 추가 해야 합니다.
insert into user (host, user, password, ssl_cipher, x509_issuer, x509_subject, authentication_string) values ('%', '아이디', password('비밀번호'), '', '', '', ''); insert into db (host, db, user, select_priv, insert_priv, update_priv, delete_priv, create_priv, drop_priv, grant_priv, references_priv, index_priv, alter_priv) values ('%','디비명','아이디', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' );