티스토리 뷰

728x90

1. mysql에서 데이터베이스를 생성하고 유저를 만들어 해당 유저에게 권한을 부여하려고 할 때 아래 에러가 발생한 경우

 

0 row(s) affected, 1 warning(s): 1285 mysql is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work

 

2. 대부분의 경우는 docker 환경에서 mysql을 사용할 경우에 발생하는 문제이다.

  2-1 일반적으로 'user'@'localhost' 형식으로 유저를 생성하는데 도커 환경은 172.17.0.1 이런 식의 내부 ip를 사용하고 있기 때문에 mysql 서버는 localhost를 172. 로 시작하는 ip를 localhost로 인식한다.

  2-3 결국 'user'@'172.17.0.1' 로 만들어 주어야 동작한다는 의미가 된다.

 

3. 경고의 내용은 접근가능한 host에서 맞지 않기 때문에 유저를 생성하고 권한을 부여할 때 이 계정을 사용하려면 name-resolve를 사용해야 한다고 알려 주는 것이다.

  3-1 skip-name-resolve 모드는 ip를 dns로 변환하여 해석하는 것을 하지 않고 ip로 접근을 처리한다는 것이다.

 

create database notes;

create user 'notes'@'172.17.0.1' identified by 'password';

grant all privileges on notes.* to 'notes'@'172.17.0.1';

 

이런 식으로 하면 된다. 귀찮으면 도커를 안쓰고 로컬에서 mysql을 설치하고 사용하면 된다.

 

728x90
댓글