PROGRAMING/php

mysql, php 에러 mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]

hwihyun 2019. 6. 16. 13:08

DB백업을 하다가 DB가 꼬여버렸고, 싹 밀어버리고 다시 설치 진행했다.

 

재설치 후 DB를 백업 하고 홈페이지를 켜보니! 에러가 뜬다.

 

mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] 

 

뿐만 아니라 heid 접속도 되지 않는다.

 

검색 해보니 php mysqli에서 아직 지원 해주지 않는 authentication feature 이라고 새로운 릴리즈를 기다려야 한다고 한다.

 

그래도 해결은 해야 하는 상황이라 더 검색 해보았다.

 

검색 하다 보니 설정 파일 my.ini(mysql 설치 시 다음다음다음.. 설치했다면 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini)에서

 

default_authentication_plugin=mysql_native_password

 

으로 설정 하고 재시작 하면 된다고 하는데

 

이렇게 하면 새로 만든 user부터 적용이 가능 하고 내가 원하는 현재 만들어진(root)는 변경 되지 않는다.

 

내가 원하는 방법으로 해결 하려 하면

 

설치 파일을 다시 실행 해보면 reconfigure 기능이 있다.

 

 

 

mysql 설치 파일을 다시 시작 해보면 

 

 

여기서 Recnfigure을 클릭 한 뒤

 

다시 설정을 적용 할 수 있도록 해주는데 

 

또 다시 다음 다음 누르다가

 

 

내용을 읽어보면 현재 암호화가 다르게 바꼇는데 현재 암호화와 호완되지 않는 예전 어플리케이션을 쓰고 있다면 어쩔 수 없이 밑에꺼 써라 뭐 이런 식

 

이 페이지에서 밑에 Legacy Authentication Method 를 클릭 하고 다시 설정 적용을 해주면 php mysqli, heid 모두 접속 가능 하다.

 

이렇게 해결!