>  기사  >  데이터 베이스  >  \"mysqlnd가 레거시 인증을 사용하여 MySQL 4.1에 연결할 수 없습니다\" 오류를 수정하는 방법은 무엇입니까?

\"mysqlnd가 레거시 인증을 사용하여 MySQL 4.1에 연결할 수 없습니다\" 오류를 수정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-25 06:18:29401검색

How to Fix

오류: 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가 보안 연결을 설정할 수 없음을 나타냅니다.

문제 해결

이 연결 문제를 해결하려면 다음 단계를 따르세요.

  1. 내 설정에서 'old_passwords' 설정을 제거하거나 주석 처리하세요. .cnf:

    my.cnf 구성 파일을 수정하고 'old_passwords = 1'이 포함된 줄을 찾습니다. 이 줄을 제거하거나 시작 부분에 '#' 문자를 추가하여 주석 처리합니다.

  2. MySQL을 다시 시작합니다.

    MySQL 서비스를 다시 시작하여 my.cnf의 변경 사항을 적용합니다. 이 단계에서는 MySQL이 새로운 비밀번호 형식을 사용하도록 합니다. 건너뛰면 MySQL은 안전하지 않은 형식을 계속 사용합니다.

  3. 사용자 비밀번호 업데이트:

    데이터베이스에 연결하고 다음 쿼리를 실행하여 식별합니다. 오래된 비밀번호를 사용하는 사용자:

    SELECT user, Length(`Password`) FROM  `mysql`.`user`;

    이 쿼리는 이전(16자) 및 새(41자) 비밀번호 해시를 모두 가진 사용자를 표시합니다.

  4. 비밀번호 업데이트 실행:

    16자 비밀번호 해시를 사용하는 사용자의 경우 다음 명령을 사용하여 비밀번호를 업데이트하세요.

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';

    'username'을 실제 사용자 이름과 'password'로 바꾸세요. '를 원하는 새 비밀번호로 입력하세요.

  5. 권한 플러시:

    마지막으로 다음 명령을 실행하여 업데이트된 비밀번호를 적용하세요.

    FLUSH PRIVILEGES;

이 단계를 완료하면 레거시 인증으로 인해 발생하는 연결 문제를 해결하고 mysqlnd를 사용하여 MySQL에 대한 보안 연결을 설정할 수 있습니다.

위 내용은 \"mysqlnd가 레거시 인증을 사용하여 MySQL 4.1에 연결할 수 없습니다\" 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.