MySQL PHP 비호환성 해결
PHP 5.3.0을 사용하여 원격 MySQL 데이터베이스에 연결하려고 하면 사용자에게 독특한 문제가 발생할 수 있습니다. 패킷 길이 및 이전 인증과 관련된 오류가 있습니다. 이러한 비호환성은 MySQL 버전 5.0.22를 실행하는 데이터베이스에 연결할 때 발생하지만, 버전 5.0.45를 사용하는 다른 데이터베이스에 연결하면 성공합니다.
근본 원인 밝히기
이 비호환성의 근본 원인은 MySQL 계정의 비밀번호에 있습니다. 비밀번호가 이전 16자 문자열인 경우 MySQL의 mysqlnd 확장은 이를 활용하여 MySQL 서버에 연결할 수 없습니다.
문제 해결
이 문제를 해결하려면 두 가지 해결 방법을 따를 수 있습니다.
사용자 비밀번호 재설정:
서버 설정 확인:
비밀번호 길이 결정
영향을 받은 사용자의 비밀번호 길이를 확인하려면 문제가 있는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!