오류: mysqlnd가 레거시 인증을 사용하여 MySQL 4.1에 연결할 수 없습니다
PHP 5.3 및 MySQL 5.5 스키마를 사용할 때 개발자는 다음과 같은 문제를 겪을 수 있습니다. 오류:
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.
이 오류 메시지는 MySQL 4.1 또는 이전 버전에 사용된 오래된 인증 메커니즘으로 인해 MySQL 네이티브 드라이버인 mysqlnd가 보안 연결을 설정할 수 없음을 나타냅니다.
문제 해결
이 연결 문제를 해결하려면 다음 단계를 따르세요.
내 설정에서 'old_passwords' 설정을 제거하거나 주석 처리하세요. .cnf:
my.cnf 구성 파일을 수정하고 'old_passwords = 1'이 포함된 줄을 찾습니다. 이 줄을 제거하거나 시작 부분에 '#' 문자를 추가하여 주석 처리합니다.
MySQL을 다시 시작합니다.
MySQL 서비스를 다시 시작하여 my.cnf의 변경 사항을 적용합니다. 이 단계에서는 MySQL이 새로운 비밀번호 형식을 사용하도록 합니다. 건너뛰면 MySQL은 안전하지 않은 형식을 계속 사용합니다.
사용자 비밀번호 업데이트:
데이터베이스에 연결하고 다음 쿼리를 실행하여 식별합니다. 오래된 비밀번호를 사용하는 사용자:
SELECT user, Length(`Password`) FROM `mysql`.`user`;
이 쿼리는 이전(16자) 및 새(41자) 비밀번호 해시를 모두 가진 사용자를 표시합니다.
비밀번호 업데이트 실행:
16자 비밀번호 해시를 사용하는 사용자의 경우 다음 명령을 사용하여 비밀번호를 업데이트하세요.
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
'username'을 실제 사용자 이름과 'password'로 바꾸세요. '를 원하는 새 비밀번호로 입력하세요.
권한 플러시:
마지막으로 다음 명령을 실행하여 업데이트된 비밀번호를 적용하세요.
FLUSH PRIVILEGES;
이 단계를 완료하면 레거시 인증으로 인해 발생하는 연결 문제를 해결하고 mysqlnd를 사용하여 MySQL에 대한 보안 연결을 설정할 수 있습니다.
위 내용은 \'mysqlnd가 레거시 인증을 사용하여 MySQL 4.1에 연결할 수 없습니다\' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!