기본적으로 localhost 에서만 접속이 허용되는 DB 를 외부(PC 및 타 서버) 환경에서 접속하려고 할 때
기존의 db 유저의 host를 변경할 것이 아니라 아래의 쿼리문을 이용해 유저를 추가해주면 된다.
(host 부분의 %는 모든 호스트에서 접속 허용이며 이부분을 IP 주소로 입력하면 해당 IP 에서만 접속이 가능함.)
[추가]
1. insert into user (host,user,password) values ('%','user_name',password('user_password'));
[mysql 5.5 이상에서는 아래 쿼리를 실행할 것!!!]
insert into user (Host, User, Password, ssl_cipher, x509_issuer, x509_subject, authentication_string) values('%','user_name', password('user_password'),'','','','');
2. insert into db (host,db,user) values ('%','db_name','user_name');
3. flush privileges;
4. grant all privileges on user_name.* to user_name@'%';
(Root 계정의 경우 2번은 생략하고 1번 쿼리 이후 4번 쿼리 중 user_name.* 대신 *.* 로 처리할 것!)
5. flush privileges;
위 방법대로 했는데도 외부 접속이 안된다면 /etc/my.cnf 파일의 항목 중 bind-address = 127.0.0.1 이 있다면
이를 주석처리 한다. (bind-address = 127.0.0.1 는 로컬호스트에서만 접속을 허용한다는 의미임.)
bind-address = 127.0.0.1 를 주석처리해도 안된다면 방화벽에서의 mysql 포트 (기본:3306)이 차단되어있을 가능성이 있으므로
확인 해 볼것!
[삭제]
아래는 위의 방법대로 외부 접속 호스트 추가 후 삭제하는 방법이다.
(user_name 과 host 부분을 and 조건으로 모두 만족해야 처리되니 주의할 것!! // % 대신 ip를 입력해도 무방)
1. delete from user where user='user_name' and host='%';
(root 계정의 경우 1번만 실행하면 됨)
2. delete from db where user='user_name' and host='%';
flush privileges;
'Works > MySQL' 카테고리의 다른 글
Myisam 자동복구 옵션 (0) | 2016.06.27 |
---|---|
MySQL Table 상태 확인, 복구 및 최적화 (0) | 2016.04.29 |
mysql의 지나친 cpu 점유일때 살펴보는 명령어 두개 (0) | 2015.10.28 |
MySQL db 일반유저 패스워드 변경방법 (0) | 2015.10.28 |
Truncate 와 delete 문의 차이비교 (0) | 2015.10.28 |