> 데이터 베이스 > MySQL 튜토리얼 > PHP 5.3.0을 사용하여 MySQL 데이터베이스에 연결할 수 없는 이유는 무엇입니까?

PHP 5.3.0을 사용하여 MySQL 데이터베이스에 연결할 수 없는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-03 15:57:30
원래의
692명이 탐색했습니다.

Why Can't I Connect to My MySQL Database with PHP 5.3.0?

MySQL PHP 비호환성 해결

PHP 5.3.0을 사용하여 원격 MySQL 데이터베이스에 연결하려고 하면 사용자에게 독특한 문제가 발생할 수 있습니다. 패킷 길이 및 이전 인증과 관련된 오류가 있습니다. 이러한 비호환성은 MySQL 버전 5.0.22를 실행하는 데이터베이스에 연결할 때 발생하지만, 버전 5.0.45를 사용하는 다른 데이터베이스에 연결하면 성공합니다.

근본 원인 밝히기

이 비호환성의 근본 원인은 MySQL 계정의 비밀번호에 있습니다. 비밀번호가 이전 16자 문자열인 경우 MySQL의 mysqlnd 확장은 이를 활용하여 MySQL 서버에 연결할 수 없습니다.

문제 해결

이 문제를 해결하려면 두 가지 해결 방법을 따를 수 있습니다.

  1. 사용자 비밀번호 재설정:

    • 영향을 받는 사용자의 비밀번호 재설정 다음 명령 사용:
      SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
  2. 서버 설정 확인:

    • 서버가 기본적으로 기존 비밀번호를 사용하거나 생성하도록 구성되어 있는지 확인하세요.

비밀번호 길이 결정

영향을 받은 사용자의 비밀번호 길이를 확인하려면 문제가 있는 MySQL 서버에서 다음 쿼리를 실행하세요.

SELECT
  Length(`Password`),
  Substring(`Password`, 1, 1)
FROM
  `mysql`.`user`
WHERE
  `user`='username'
로그인 후 복사

'username'을 mysql_connect() 함수에 사용된 실제 사용자 이름으로 바꾸세요.

쿼리에서 길이가 16이고 첫 번째 문자가 '*'인 경우 비밀번호가 이전 16자 해시인지 확인합니다. 이는 앞서 언급한 방법을 사용하여 비밀번호를 재설정해야 함을 의미합니다.

오래된 비밀번호 문제를 해결하면 PHP 5.3.0을 사용하여 원격 MySQL 데이터베이스에 성공적으로 연결하여 발생한 비호환성을 해결할 수 있습니다.

위 내용은 PHP 5.3.0을 사용하여 MySQL 데이터베이스에 연결할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿