보안되지 않은 인증으로 인한 MySQL 연결 오류 수정
데이터베이스 연결을 시도할 때 다음 오류가 발생할 수 있습니다.
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password').
로그인 후 복사
이 문제는 PHP와 MySQL의 버전이 일치하지 않아 발생합니다. MySQL은 보안 조치를 강화하여 보다 안전한 인증 방법을 사용해야 합니다.
해결 방법:
-
서버 구성 업데이트:
- 웹 호스팅 서버(미디어 템플)에서 호스트에게 문의하여 MySQL 버전을 5.5.16 이상으로 업데이트하세요(로컬 컴퓨터의 버전과 일치).
-
안전하지 않은 인증 비활성화:
- "my.cnf" 구성 파일(예: "/etc/my.cnf")을 찾습니다. 또는 "/opt/lampp/etc/my.cnf").
- "old_passwords = 1" 줄을 제거하거나 주석 처리합니다.
-
MySQL 다시 시작:
- 변경 사항을 적용하려면 MySQL 서비스를 다시 시작하세요.
-
비밀번호 재설정:
- 관리 도구(예: MySQL Workbench 또는 phpMyAdmin)를 사용하여 MySQL 데이터베이스에 연결합니다.
- "SELECT user, Length(Password) FROM mysql.user;" 쿼리를 실행합니다. 안전하지 않은 비밀번호(16자 해시)를 사용하는 사용자를 식별합니다.
- "UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username' 쿼리를 사용하여 안전하지 않은 인증을 사용하는 각 사용자의 비밀번호를 업데이트합니다. ';".
-
권한 플러시:
- "FLUSH PRIVILEGES;" 쿼리를 실행합니다.
추가 고려 사항:
- PHP 5.2 이하 버전을 사용하는 경우 서버 측에서는 오래된 인증 방법을 허용하려면 "my.cnf" 파일에서 "old-passwords" 플래그를 제거해야 할 수도 있습니다.
- 오류에 언급된 대로 MySQL 루트 사용자 비밀번호가 안전한지 확인하세요. 메시지.
위 내용은 콘텐츠에 따라 질문 형식으로 된 기사 제목에 대한 몇 가지 옵션은 다음과 같습니다.
**일반 및 오류 메시지 중심:**
* **\'mysqlnd가 다음을 사용하여 MySQL 4.1에 연결할 수 없는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!