MySQL PHP 호환성 문제
PHP 5.3.0을 실행하는 로컬 WAMP 서버에서 원격 MySQL 데이터베이스에 연결할 때 오류가 발생합니다.
Warning: mysql_connect() [function.mysql-connect]: OK packet 6 bytes shorter than expected. PID=5880 in ... Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication in ...
이 문제는 일반적으로 이전 MySQL 데이터베이스(예: 버전 5.0.22)에 연결할 때 발생하지만 최신 데이터베이스(예: 버전 5.0.45)에는 연결할 때 발생하지 않습니다.
원인:
사용 중인 MySQL 계정에 오래된 16자 비밀번호 해시가 있는 경우 문제가 발생합니다.
해결책:
문제를 해결하려면 문제가 있는 계정의 비밀번호를 재설정하여 최신 비밀번호 형식을 사용하세요. MySQL 클라이언트에서 다음 쿼리를 실행합니다.
SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword');
추가 정보:
비밀번호 해시가 실제로 오래된 것인지 확인하려면 이전 클라이언트에서 다음 쿼리를 실행하세요. MySQL 서버(버전 5.0.22):
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username';
'길이' 필드가 16을 반환하고 '하위 문자열' 필드가 '*' 문자를 반환하는 경우 비밀번호 해시가 오래된 것입니다.
위 내용은 이전 MySQL 데이터베이스에 대한 내 PHP 5.3.0 연결이 \'예상보다 6바이트 짧은 OK 패킷\' 메시지와 함께 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!