MYSQL 4.1 이후에는 새로운 사용자 인증 프로토콜이 적용됩니다. 기존 클라이언트의 경우 인증 프로토콜이 지원되지 않는다는 오류가 발생합니다.
1모두 업그레이드하세요. 4.1.1 이상의 클라이언트 라이브러리를 사용하려면
PHP 확장 라이브러리를 업데이트해야 합니다. PHP는 더 이상 이전 API에 대한 확장 라이브러리를 제공하지 않습니다. >24.1 이전 클라이언트 프로그램으로 서버에 연결할 때는 4.1 이전 스타일의 비밀번호가 있는 계정을 사용하세요.
3사용해야 하는 각 사용자의 비밀번호를 4.1 이전 스타일로 재설정하세요. 4.1 이전 클라이언트 프로그램은 SET PASSWORD 문과 OLD_PASSWORD() 함수를 사용하여 수행할 수 있습니다: mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd' );
또는 UPDATE 및 FLUSH PRIVILEGES를 사용합니다. mysql> UPDATE mysql.user SET Password = OLD_PASSWORD( 'newpwd') -> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;
이전 예에서 ``newpwd''를 사용하려는 비밀번호로 바꾸세요. MySQL은 원래 비밀번호가 무엇인지 알려줄 수 없으므로 비밀번호를 선택해야 합니다.
좋은 생각입니다. 새로 생성된 계정은 이전 암호화 프로토콜을 사용합니다.
4서버에 이전 비밀번호 해싱 알고리즘을 사용하도록 지시합니다.
다음으로 mysqld를 시작합니다. --old-passwords 옵션
이렇게 하면 새로운 인증 프로토콜의 장점을 사용할 수 없습니다.
️비밀번호를 더 긴 비밀번호로 업데이트한 각 계정에 이전 형식의 비밀번호를 할당하세요. 4.1 형식입니다. mysql> SELECT Host, User, Password FROM mysql.user
-> WHERE LENGTH(Password)
쿼리로 표시되는 각 계정 레코드에 대해 Host 및 User 값을 사용하고 앞서 설명한 대로 OLD_PASSWORD() 함수와 SET PASSWORD 또는 UPDATE를 사용하여 비밀번호를 할당합니다.
업그레이드된 비밀번호를 복원합니다. 오래된 스타일.