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 까지 포함되진 않습니다. 그렇기 때문에 와일드카드로 모든 호스트를 허용한다고 해도 쉘접속을 통한 호스트 설정은 별개로 해줘야 합니다.