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!;

코멘트를 남겨주세요

댓글