겸손하기 꾸준하기 건강하기
MySQL.. 너 날 왜 이렇게 괴롭히니 본문
일주일 전부터 워크밴치를 열려고 하면 매번 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로 받자

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 |
---|