반응형
Connect Error (2000) mysqlnd cannot connect to MySQL 4.1+ using old authentication
나는 이것을 조사했고, MySQL 4.1 이전에 사용 된 오래된 암호 체계와 관련이 있습니다. 최신 버전에는 이전 암호를 사용할 수있는 옵션이 있으며, 이로 인해이 문제가 발생할 수 있습니다.
나는 php 5.3을 실행하고 있고 mySQLi (new mysqli (...))와 연결하고 있습니다. bluesql.net에서 DB에 연결하기 위해 코드에서 무언가를 할 수 있기를 바랍니다. 분명히 데이터베이스 설정 방법을 제어 할 수 없습니다. PHP 버전 다운 그레이드는 옵션이 아닙니다.
누구나 아이디어가 있습니까?
해결 방법
먼저 SQL 쿼리로 확인
SHOW VARIABLES LIKE 'old_passwords'
mysql.user
테이블 (해당 테이블에 대한 액세스 권한이있는 계정 포함)을 살펴보면 어떤 루틴이 사용 될지 확인할 수 있습니다.
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
이렇게하면 이전 비밀번호를 사용하는 계정의 경우 16 이 반환되고 새 비밀번호가있는 계정의 경우 41 이 반환됩니다 (비밀번호가없는 계정의 경우 0이 반환됩니다. 음).
MySQL 프런트 엔드 (있는 경우)의 사용자 관리 도구를 사용하거나
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;
( User
및 Host
를 이전 쿼리에서 얻은 값으로 바꿉니다.) 그런 다음 암호 길이를 다시 확인합니다. 이제 41 이어야하며 클라이언트 (예 : mysqlnd)가 서버에 연결할 수 있어야합니다.
MySQL 문서도 참조하십시오.
참조 페이지 https://stackoverflow.com/questions/1575807
반응형
'MySql' 카테고리의 다른 글
MySQL Eclipse 프로젝트에 JDBC mysql 드라이버를 추가하는 방법은 무엇입니까? (0) | 2021.01.07 |
---|---|
MySQL 비트 유형 열에 어떤 값을 삽입 할 수 있습니까? (0) | 2021.01.07 |
MySQL NULL에 대한 PHP 검사 (0) | 2021.01.07 |
MySQL Node.js에서 SQL 주입 방지 (0) | 2021.01.07 |
MySQL은 구분 기호를 사용하여 저장 프로 시저 구문을 만듭니다. (0) | 2021.01.07 |
댓글