본문 바로가기
일지

[Mysql] Access denied for user 해결 / 계정 비밀번호 확인하기

by 닉닉눅 2023. 7. 24.
728x90
반응형

그룹웨어 메일로 관제 시스템에서 사이트 접근 불가 메일을 받았습니다.

 

우선 홈페이지 서버에 접속하여 톰캣로그를 확인하니 DB 계정이 DB에 접근할 수 없어 오류가 발생했음을 알 수 있습니다.

(문제 발생 시 로그를 확인하는 자세를 가집시다!😊)

Access denied for user
Access denied for user🥲

Access denied for user 의 로그인 오류가 나타나는 경우는 주로 다음의 이유가 있습니다.

 

0. 로그인 정보가 잘못된 경우. -> 계정, 비밀번호 틀림

1. 외부 접속을 열어주지 않은 경우. -> 방화벽 미허용

2. 비밀번호를 설정하지 않은 경우.

3. 비밀번호를 제대로 설정하지 않은경우.

 

가장 먼저 확인한 것은 홈페이지 서버를 최근 클라우드로 서버로 전환을 했기에 포트의 문제일 수 있기에 telnet을 사용하여 확인했습니다.

telnet {DB 서버 IP} 3306(MySQL 포트 번호)

 정상적으로 연결되어 포트쪽은 이상없음을 확인했습니다.

 

다음으로 가능성 있는 로그인 정보가 잘못된 경우입니다.

 

임시로 계정을 만들어 제가 알고 있는 DB 접속 계정의 비밀번호를 입력했습니다.

 

그리도 다음 쿼리를 사용하여 계정들의 현재 암호를 확인했습니다.

mysql> select host, user, authentication_string from user;

확인 결과 새로만든 계정과 DB접속 계정의 비밀번호가 다른것이 확인 되었습니다.

 

시스템의 config를 확인해보니 설정된 DB접속 계정의 비밀번호가 달랐습니다. 추측해보자면 예전에 다른 개발자분이 config를 수정했고 놔뒀다가 오늘 톰캣 재기동이 있어 config파일이 터치되어 오늘의 문제가 발생했던 것이라 추측됩니다.\

 

아래 쿼리를 사용하여 비밀번호를 변경해주거나 계정을 삭제했다가 다시 생성하는 방법으로 문제를 해결하시면 됩니다.

삭제 후에는 flush privileges; 하여  변경사항을 저장 후 계정을 생성해야합니다.

mysql> alter user '계정'@'localhost' identified with mysql_native_password by '변경후 비밀번호';

 

728x90
반응형

댓글