저는 PHP를 사용하여 mysqli_connect
MySQL 데이터베이스에 로그인하고 있습니다(모두 로컬 호스트에 있음)
mysql.user 테이블은 다음과 같습니다.
MySQL 서버 ini 파일:
으아아아MySQL Server ini 파일에서 caching_sha2_password
를 사용하면 user1 또는 user2로 로그인할 수 없습니다.
오류: mysqli_connect(): 서버가 클라이언트 [caching_sha2_password]를 요청했습니다. 알 수 없는 인증 방법...MySQL Server ini 파일에서
를 사용하면 user1로 로그인할 수 있지만 user2로 로그인하면 동일한 오류가 발생합니다.
mysql_native_password
P粉7274166392023-10-14 16:49:08
저는 SQL 명령을 통해 이 문제를 해결했습니다:
으아아아참조: https://dev.mysql. com/doc/refman/8.0/en/alter-user.html
새 사용자를 생성하는 경우
으아아아참조: https://dev.mysql. com/doc/refman/8.0/en/create-user.html
이것은 나에게 효과적이었습니다
P粉2259617492023-10-14 15:47:19
PHP 7.4부터는 더 이상 문제가 되지 않습니다. mysqlnd는 caching_sha2
인증 방법에 대한 지원을 추가했습니다.
현재 새로운 caching_sha2 인증 기능은 PHP mysqli 확장 프로그램에서 지원되지 않습니다. 업데이트가 나올 때까지 기다려야 합니다.
MySQL 개발자의 관련 게시물 보기: https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/
PDO에 대해서는 언급하지 않았습니다. PDO 연결을 사용해 보시는 것이 좋을 것 같습니다.