복붙노트

[SQL] 오류 : mysqlnd 이전 불안 인증을 사용하여 4.1 MySQL로 연결할 수 없습니다

SQL

오류 : mysqlnd 이전 불안 인증을 사용하여 4.1 MySQL로 연결할 수 없습니다

나는 다음과 같은 오류가 점점 오전 :

PHP 5.3.8과 내 로컬 컴퓨터에서 MySQL 5.5.16 내 호스트 (미디어 사원)를 사용하여 나는 PHP 5.3 MySQL의 5.0.51a를 실행 중입니다. 라이브 서버의 버전은 내 컴퓨터에 하나보다 이전 버전입니다.

어떻게 로컬 컴퓨터에서의 MySQL이 오류와 연결을 수정합니까?

내가 거기, 이것과 같은 게시물하지만 내가 그들 모두를 시도 아무도가 작동하지 않습니다 알고 있습니다.

해결법

  1. ==============================

    1.다시 시작 MySQL을. 그렇게하지 않으면, MySQL은 당신이 내장 된 PASSWORD () 해시 함수를 사용하여 암호를 업그레이드 할 수 있다는 것을 의미합니다 이전 암호 형식을 계속 사용합니다.

    다시 시작 MySQL을. 그렇게하지 않으면, MySQL은 당신이 내장 된 PASSWORD () 해시 함수를 사용하여 암호를 업그레이드 할 수 있다는 것을 의미합니다 이전 암호 형식을 계속 사용합니다.

    이전 암호 해시는 16 자이며, 새로운 사람은 41 자입니다.

    이것은 예컨대, 기존의 형식으로되어있는 암호를 표시합니다 :

    +----------+--------------------+
    | user     | Length(`Password`) |
    +----------+--------------------+
    | root     |                 41 |
    | root     |                 16 |
    | user2    |                 16 |
    | user2    |                 16 |
    +----------+--------------------+

    각 사용자가 여러 행을 가질 수 있습니다 여기에 공지 사항 (각각 다른 호스트 사양의 하나).

    각 사용자의 암호를 업데이트하려면 다음을 실행합니다 :

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
    

    마지막으로, 플러시 권한 :

    FLUSH PRIVILEGES;
    

    출처 : 해결하기 PHP5.3에 "mysqlnd 오래된 인증을 사용하여 4.1 MySQL로 연결할 수 없습니다"어떻게

  2. ==============================

    2.내가했던 기존의 암호는 기본적으로 서버에서 에이블 문제를 가지고 너무 '일부 사용자'@ '%'= PASSWORD ( 'XXXX')에 대한 간단한 암호 설정; (이유 때문에 .... 난에 가지 않을 된 소프트웨어와 기존에) 것하지 작업

    내가했던 기존의 암호는 기본적으로 서버에서 에이블 문제를 가지고 너무 '일부 사용자'@ '%'= PASSWORD ( 'XXXX')에 대한 간단한 암호 설정; (이유 때문에 .... 난에 가지 않을 된 소프트웨어와 기존에) 것하지 작업

    해결책 :

    SET old_passwords = 0;
    SET PASSWORD FOR 'some-user'@'%' = PASSWORD ('XXXX');
    FLUSH PRIVILEGES;
    

    세부 사항 :

    (가) 로그인 한 사용자로 이렇게

    SET Password = PASSWORD('password')
    

    간단하게 작동하지 않았다

    여기에 예를 검증

    SHOW CREATE TABLE `mysql`.`user`;
    

    암호는에서로 전환하지 않을

    | HOST | USER | PASS |
    

    기존 비밀번호

    | % | some-user | 7fa559aa33d844b4 |
    

    내가 원하는, EG NEW 암호

    | % | some-user | *CF04AECA892176E6C0C8206F965C03374D12F93E |
    

    나는 이전 암호에 대한 변수를 보았다 그래서

    SHOW VARIABLES;
    
    ...
    old_passwords = ON
    ...
    

    그래서 기본적으로 내가 OFF를 OLD_PASSWORD = 먼저 MySQL 서버의 VAR을 설정했다, 예를 들어,이 날 위해 일했습니다

    SET old_passwords = 0;
    SET PASSWORD FOR 'some-user'@'%' = PASSWORD ('XXXX');
    FLUSH PRIVILEGES;
    
  3. ==============================

    3.내 로컬 Windows 시스템에 IIS를 통해 Mediatemple를 외부 DB에 연결을 시도 동일한 문제가 있었다. 특정 DB를 사용자에 대한 암호를 업데이트는 데이터베이스에 연결 문제를 해결했다.

    내 로컬 Windows 시스템에 IIS를 통해 Mediatemple를 외부 DB에 연결을 시도 동일한 문제가 있었다. 특정 DB를 사용자에 대한 암호를 업데이트는 데이터베이스에 연결 문제를 해결했다.

    (산) 계정 센터 내에서 단순히 암호를 업데이트합니다. 나는 동일한 비밀번호를 사용하고 내 모든 문제를 해결했다.

  4. ==============================

    4.구성 대상 MySQL 서버는 오래된 불안의 인증을 허용합니다.

    구성 대상 MySQL 서버는 오래된 불안의 인증을 허용합니다.

    http://dev.mysql.com/doc/refman/5.0/en/server-options.html#option_mysqld_old-passwords

    간단히 old_passwords 아웃 대상 mysqld 서버 주석에 my.cnf 파일입니다.

    어쩌면 호환 (구) 인증 모드를 사용 PHP 빌드를 취득 (또는 직접 구축)하는 방법이있다.

  5. ==============================

    5.나는 그리드 서버의 미디어 사원의 DB에 처음으로이 오류에 달렸다.

    나는 그리드 서버의 미디어 사원의 DB에 처음으로이 오류에 달렸다.

    내가 그들의 이전 암호 형식으로 여전히 데이터베이스 사용자의 암호를 사용하기 때문에 문제가 발생했다. 새로운 형식은 10 개 + 문자, 특수 문자, 숫자 등을 요구한다 ...

    나는 새로운 형식의 새 데이터베이스 사용자 및 암호를 생성하고 그것을 잘 작동했다.

  6. ==============================

    6.내가 MySQL의 이전 버전에서 데이터베이스를 가져올 때 나는이 문제를 가지고 있었다. 가장 큰 문제는 - 내가 아래의 지침에 따라 루트 암호를 재설정했다 그래서 내 루트 사용자와 MySQL의 연결에서 저를 방지했다 :

    내가 MySQL의 이전 버전에서 데이터베이스를 가져올 때 나는이 문제를 가지고 있었다. 가장 큰 문제는 - 내가 아래의 지침에 따라 루트 암호를 재설정했다 그래서 내 루트 사용자와 MySQL의 연결에서 저를 방지했다 :

    이후 나는 위의 수정 프로그램을 적용 할 수 있었다.

    예를 들면 으로:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    
  7. ==============================

    7.저도 같은 문제가이 내가이 porbleme를 해결하기 위해 수행 한 모든 단계입니다 :

    저도 같은 문제가이 내가이 porbleme를 해결하기 위해 수행 한 모든 단계입니다 :

  8. from https://stackoverflow.com/questions/8831183/error-mysqlnd-cannot-connect-to-mysql-4-1-using-the-old-insecure-authenticatio by cc-by-sa and MIT license