mysql old_password 설정
페이지 정보
작성자 차동박 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 21,096회 작성일 12-01-12 11:38본문
mysql old_password 설정 |
글쓴이 : 두두
포인트 : 1,000점 조회 : 1,636 |
안녕하세요 디비서버 이전에 대한 문제를 문의드립니다. 서버이전을 했습니다. 마이 sql 버전 MySQL client version: 5.0.27 에서 => MySQL client version: 5.0.51a 으로 이전했는데, 새로 이전한 서버는 패스워드 암호화 방식을 14바이트로 고정했다고 합니다. (mysql 4. 이전 버전의 암호화 방식) 이전 디비는 41바이트 암호화로 저장되었고 이전될 서버는 14바이트 암호화 방식으로 고정되었다고 합니다. 그러니까 문제는 이전해야할 디비는 윗버전인데 이전할 디비는 하위버전이 되어 버렸습니다. (윗버전 -> 아랫버전; 으로 이전 과 같은 결과가 되었습니다. (암호화 방식만,,,) 그래서 회원 로그인 부분이 안됩니다. 호스팅사에 문의해 보니 아래와 같은 소스 코드로 41바이트 암호화 방식을 복구 할수 있다고 합니다. <?php $connect = mysql_connect("localhost", "user", "password"); mysql_select_db("mysql", $connect); mysql_query("set variables old_passwords=0", $connect); // --> old_passwords OFF (참고로 show variables like ‘old%’; 명령을 통해 현재 설정 확인 가능) mysql_query("update user set password=password('abc') where user = 'abc'"); ?> 그런데 문제는 위의 소스코드를 적용해도 41바이트 암호화 방식이 안됩니다. 문제를 다시 정리하면 새로 이전될 디비서버가 암호화 방식만 옛날 버전으로 세팅되어 있어서 php소스로 암호화 방식을 바꾸어야 하는데 찾지 못하고 있습니다. 혹시 방법을 아시는 분 있으시면 도와주세요 |
아빠불당 10-02-09 20:31
팁을 잘 검색해보면 답이 있습니다. 제가 작년에 올려둔 코드죠.
lib/common.lib.php에서
function sql_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
// mysql 4.1x 이상 버젼에서도 password() 함수의 결과가 16bytes가 되어서
// 41바이트의 기존 비밀번호 때문에 로그인 오류가 나는 경우에는 아래 코멘트를 풀어주세요
// 마루호스팅에서 테스트 했습니다.
sql_query("set old_passwords=0");
$row = sql_fetch(" select password('$value') as pass ");
return $row[pass];
}
관련링크
댓글목록
등록된 댓글이 없습니다.