freezner

[MySQL] Access denied for user ‘user’@’localhost’ 오류 시 체크사항

MySQL을 사용하면서 이 에러는 자주 접하게 됩니다. 그만큼 다양한 원인으로 인해 저 메세지를 볼 수 있습니다.

1. 계정에 패스워드가 지정되있지 않은 경우
정말 기본적이지만.. 기본적이기 때문에 인지하지 못하는 웃지못할 경우가 꽤 있습니다. 등잔 밑이 어둡다라는 말이 이래서 나오는 듯합니다. 이런 경우에는 root계정으로 로그인 후, 해당 사용자 계정의 패스워드를 지정해주고 재시작하면 해결이 됩니다.

# mysql -u root -p
mysql> root 패스워드 입력
mysql> use mysql;
mysql > UPDATE User SET Password = PASSWORD('사용할 패스워드') WHERE User = '사용자 계정';
mysql > flush privileges;
mysql > exit;

2. User 테이블 정보가 잘못된 경우
mysql DB에서 User 테이블의 정보가 잘못된 다양한 경우 중 제가 설명드릴 부분은 Host 필드입니다. User 테이블 Host 필드의 와일드카드 문자인 ‘%’는 모든 호스트를 허용한다라는 의미입니다. 하지만 예외적인 부분이 있는데 모든 호스트라고 해서 localhost 까지 포함되진 않습니다. 그렇기 때문에 와일드카드로 모든 호스트를 허용한다고 해도 쉘접속을 통한 호스트 설정은 별개로 해줘야 합니다.

Exit mobile version