MySQL의 비밀 번호 해싱
당신이 MySQL의 설치를 업그레이 드 때마다, 그것을 사용하는 클라이언트를 업그레이 드해야합니다.
어떤 경우에는, 이전 4.1 버전을 사용하는 클라이언트는 후자가 4.1 버전이 게시물이있다면 MySQL 데이터베이스에 대한 인증 문제가됩니다.
마술은 4.1 (즉, 4.11 및 최대) 이후, MySQL은 그것이 MySQL의 시스템 데이터베이스 내부의 사용자 테이블에서 암호를 저장하는 방법을 변경한다는 것입니다.
암호 해시는 이제 41 바이트 긴 대신에 기존의 16 바이트입니다.
따라서 예를 들어, PHP - MySQL의 라이브러리 4.1는 동안 MySQL 서버가, 5.0 경우 웹 응용 프로그램은 데이터베이스에 연결되지 않습니다. 따라서, 그것은 당신이 클라이언트를 업그레이 드하는 것이 좋습니다.
어떤 경우에는, MySQL은 기존의 형식으로 해시를 다시 변경할 수있는 방법을 제공합니다. 논쟁을 위해서, 해당 사용자 존 가정, 당신은 비밀 번호 더미를 사용하여 연결할 수 있기를 바랍니다. 이 경우에는 프롬프트에서 MySQL 서버에 연결 (SSH 사용 '마이 SQL - U 루트 - P MySQL의'리눅스, 또는 MySQL을 / 빈 Windows 디렉터리로 이동하여 동일한 쿼리를 실행) 후 다음과 같은 검색어를 문제 :
업데이 트를 사용자 암호 설정 = OLD_PASSWORD ( '더미') 어디에 사용자 = '존';
권한을 내리;
OLD_PASSWORD () 함수는 기존의 16 바이트가 해시 생성합니다. 첫 번째 쿼리는 결국이 해시를 사용하여 사용자 암호를 업데이 트합니다. 두 번째 쿼리는 새 사용자 권한을 다시 읽을 수 MySQL의 서비스를 위해 필요합니다.
PS : 귀하의 루트 암호가 작동하지 않는 경우,뿐만 아니라 참조로 그것을 재설정에 대한 안내 .
또는 데이터베이스는 많은 사용자를 가지고 있으며 당신이 그들을 추적하지 않은 경우 다음과 같은 쿼리를 사용할 수 있으며 새로운 해시를 사용하는 사용자 이름을 반환합니다
사용자로부터 서로 다른 (사용자)를 선택 어디에 길이 (비밀 번호) = 41!;
