본문 바로가기
Programing/DB

[MySQL] MySQL access denied 오류 해결

by 꾸압 2022. 6. 14.

 

 

mysql 에 root 계정 하나만 만들어 놓고 쓰다가... 에러 먹어 과히 고생하고 마음 아파 쓰는 글.

 


 

[Error] 28000, Access denied for user 'root'@'localhost'

using password: YES 아니면 NO

 

작업용 계정에 문제가 생기면 mysql root 계정에서 관리자 권한으로 들어가 해결 가능하나,

root 계정에 문제가 생기면? 거진 reinstall 밖에 답이 없다.

 

근데 reinstall 하면 내 database는? 수십만개의 data는? 내 이틀의 시간은?

 

리눅스라면 reinstall 해도 database가 계속 남아있어 재사용 가능하다는 구석 글을 봤으나,

win은 그런 글이 없다.

 

database 파일 or 폴더를 따로 빼놓고 MySQL만 재설치한 뒤 database를 덮어쓰기하면?

 

될지 안 될지 모른다. database 파일 자체가 독립적이면 상관없으나, dbf 및 log file 등이 

묶여 있어 함께 존재해야만 열린다면? 

 

database 파일만 바꿔도 앞선 dbf 등이 없다면 이전 db에 접근이 불가능하다.

 


 

<문제 인식과 해결 시도>

비밀번호 인식을 못한다. 엄연히 존재하는데! 비밀번호를 바꾼 적도 없는데 바뀌었다?

root 계정으로의 권한만 뚫으면 될 것 같은데...

 

(1) reinstall 은 db보존이 불확실하다.

(2) lock이 걸린 계정이 root 라 권한자로 비밀번호 변경이 안된다.

(3) root가 문제라 다른 계정을 만들고 admin 권한을 준 뒤 bypass하여 root를 여는 것도 안된다.

(4) root가 문제라 mysql status 확인도 안된다 ^오^

(5) root가 문제라 workbench도 안된다.

(6) sqld(daemon) 으로 권한을 줘서 비번을 열려해도 안됨

* (7) sql-init.txt 파일을 만들고 mysql\bin에서 console 명령어로 file 호출 bypass 하는 것도 안됨 =>file 인식을 못함

* (8) 중간에 ip 바꾼 적도 없기에, tcp/ip 변경 문제도 아님

* (9) websocket 변경 등 몇 가지가 더 있었는데 어렵고 피곤해보여서 시도 안 함.

 

=> 결론 : root 막히면 다 안됨. 신발

=> stackoverflow 에 인디 아재님들 youtube까지 싹 다 뒤져도 해결책은 저게 다였음

=> 내 SQL 버전은 8.0인데 왜 net user들의 해결방안은 5.6버전 이전 이후 기준뿐인가

=> 웃긴건 저렇게 해도 댓글에 '그래도 안되는데요?' 가 상당히 많았음

 


 

<해결 방안>

프로그램을 하나하나 뜯어서 분석하자.

 

(1) 사용자의 MySQL 이 깔린 폴더로 가자. 본인은 C://Program Files\MySQL\MySQL Server 8.0\data

 

(2) 무수한 file 들이 있을 것이다. 메모장으로 호환 불가능한 file 형식이 많으니 

'notepad++' 를 설치하자

 

(3) 파일을 모두 열어 정독하며 log 및 에러를 확인하자. 본인은 DESKTOP-0KITPEK.err 라는 err 파일 형식에 sql log가 있었음 

 

(4) log를 읽어보니 어제 오전 갑자기 비밀번호가 temporary pswd 로 바뀌었다. [note] tag.

파이썬 code 동작시킨 것 밖에 없는데 왜 바뀐걸까? 이유를 모르겠다.

여튼 log에 temporary pswd가 적혀 있어 그걸로 비번을 치니 mysql 입성 ㅠㅠㅠ

 

(5) 비밀번호를 다시 바꾸자

 

(6) 이것도 안되면 재설치하자. 수업료라고 생각하자...

회사 들어가서 db 수백만개 날린 것보다는 낫다.

 


 

<결론>

DB 작업하기 전, root 사용자 이외에 작업용 계정을 따로 만들어 쓰자.

 

코딩 잘하는 지인-선배님은 언제나 옳다. 나보다 코딩 잘하면 형, 누나, 선생님임

 


 

<출처> 회사 김 이사님. 감사합니다.

 

'Programing > DB' 카테고리의 다른 글

[MySQL] 인덱스(index) 추가 & 삭제  (0) 2022.06.22
[MySQL] Cardinality  (0) 2022.06.21
[MySQL] MySQL data 중복 제거 (DISTINCT, GROUPBY)  (0) 2022.06.09
[DB] MySQL DB 백업 및 복구  (0) 2022.06.01

댓글