겸손하기 꾸준하기 건강하기

MySQL.. 너 날 왜 이렇게 괴롭히니 본문

project/error

MySQL.. 너 날 왜 이렇게 괴롭히니

seminss 2024. 3. 25. 23:07

 

일주일 전부터 워크밴치를 열려고 하면 매번 MySQL Worbench has encountered a problem 에러가 났다.

에러가 너무 추상적이다. 화가 났다. ㅎ

 

 

보통은 3306 포트를 죽여주면 해결된다고 한다.

 

나도 한두 번은 포트만 죽이면 해결이 되었었지만...

언젠가부터 안되었다.~

 

installer에서 아래 부분으로 reconfigure 해주면 된다고 해서 몇 번은 또 이렇게 해결을 했다.

 

 

reconfigure을 하려고 하면 root password로 접속을 해야 하는데, 3-4일 전부터 root 비밀번호가 맞음에도 접속이 안되었다~~~ 즉 reconfigure 도 안됨, == 서버 연결 안 됨!!!!!!!!!!!!

 

cmd에서도 접속이 안됨!!!!!!!!!!!!

 

며칠간 바빠서 원인을 파악할 시간은 없고...

매번 mysql 깨끗하게 지우고 다시 설치한 뒤(20분 소요) 할 일을 했었다 ㅠㅜ

 

그러다가 오늘~,, 에러를 잡아보려고 한다.

 


 

일단은 에러 메시지 뒤에 나오는 이상한 문구를 보니, 인코딩이 잘못된 것 같다. 는 추측이다.

 

게시글을 보고 아래와 같은 가설을 새웠다.

이 문제는 클라이언트 프로그램에서 mysql 패스워드 플러그인 " caching_sha2_password"을 소화하지 못해서 생기는 오류입니다.

 

 

일단 세팅을 하려면 mysql 서버에 접속이 되어야 하니 완전히 지웠다가 재설치했다...

 

1. MySQL Installer에서 삭제

  • Remove 버튼 클릭
  • Product (전체) 선택 후 next
  • 쭉쭉 진행

2. 제어판에서 MySQL 관련 프로그램 삭제

 

3. 파일 지우기

  • C:\Program Files\MySQL
  • C:\Program Files (x86)\MySQL
  • C:\ProgramData\MySQL

4. (MySQL 버전을 변경할 것이라면 환경변수 설정도 지워줘야 한다.)

 


 

설치를 새로 했다.

 

1. 보통은 Developer로 설치를 하던데, 나는 안 뜬다.~ 애매하게 custom으로 하지 말고 Full로 받자

하다보니 뒤에서 Developer Computer로 선택하는 부분이 나온다.

 

2. 그냥 전부 next, 나는 custom user로 root가 아닌 계정을 하나 추가해 줬다.


 

확인해 보니 cashing_sha2_password를 사용하고 있었다.

 

mysql_native_password나 caching_sha2_password 모두 일반적인 인증 방식이라던데,,

내 컴퓨터에는 플러그인이 없거나 손상된 것 같다.

플러그인 설정을 수정하고

 

일단은 변경되었으니까 PC를 껐다 켜봤다.

왜냐... 매번 컴퓨터를 껐다가 켜면 말썽이었거든 🥹

 

 

와!!!!!!!! 또 안된다!!!!!!!!!!!

 


 

 

 

ㅋㅋㅋ 다시 또 지우고 설치해 봤다.

 

두 번째 가설... 그런 건 없었다. 아무리 봐도 플러그인 문제가 맞다 ( ͠° ͟ʖ ͡°)

 

그러다가 보게 된 게시글 하나 ~

MySQL 8.0은 SHA-256 해싱을 구현하는 두 가지 플러그인을 지원한다.

SHA256 : 기본적인 SHA-256 인증을 구현한 플러그인. caching_sha2_password : sha256_password와 동일하지만, 성능 향상을 위해 서버 캐싱을 이용한다.
MySQL 8.0의 기본 인증 플러그인은 caching_sha2_password이다.

caching_sha2_password를 사용하려면 'SSL 보안 연결'을 사용하거나 RSA 보안을 적용한 비암호 연결을 사용해야 한다.

그렇기 때문에 보안 연결이나 RSA 보안을 사용하지 않으면 해당 에러가 발생하는 것이다. 

authentication plugin 'caching_sha2_password'

내가 RSA 보안을 사용하지 않고 있다고 하더라도, 플러그인을 수정해 줬기 때문에 에러가 나지 않아야 한다고 생각하지만, 해당 게시글에는 

 

이 문제를 해결하는 가장 쉽게 해결하는 방법은 인증 방식을 MySQL 5.* 버전에서 디폴트로 사용되었던 'mysql_native_password' 방식으로 변경하는 것이다.

ALTER USER '사용자'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호';

이렇게 적혀있었다.

 

그런데 나는 일단 sql 서버에 접속 자체가 안돼서 쿼리문을 쓸 수 없었기 때문에 ㅎㅎ

또 지웠다가 깔았다 ~~... (/ω\*)……… (/ω•\*)

 

 

깔면서 보니까, 이 부분이 위 얘기였던 모양이다.

 

당연히 최신 버전 써야지 ~ 하고 위에 거 선택했는데 역시 경고는 잘 읽어봐야 한다. ⚠️⚠.....

똑같은 얘기 하고 있네요 ㅎㅎ...

 

와 ~~~ 껐다가 켜도 접속이 잘 되었다 ^____^.....

다행이다 정말.

'project > error' 카테고리의 다른 글

java.sql.SQLException: Access denied for user  (0) 2023.11.01