mysql old_password 설정

안녕하세요
디비서버 이전에 대한 문제를 문의드립니다. 서버이전을 했습니다.
마이 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소스로 암호화 방식을 바꾸어야 하는데 찾지 못하고 있습니다.

혹시 방법을 아시는 분 있으시면 도와주세요
|

댓글 5개

팁을 잘 검색해보면 답이 있습니다. 제가 작년에 올려둔 코드죠.

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];
}
아빠 불당님 감사합니다.
몇일 이문제 풀지 못해 고생했는데
간단히 해결되네요, 감사합니다.
계정 이전시 암호 비트수 다를때 해결법
오래된 게시글이지만 초보인 제가 이것 저것 하다가 해결한 방법도 적어봅니다.
저는 예전 DB와 지금의 DB를 함께 써야 해서 password가 2가지를 혼용해야 했습니다.
그래서

lib/common.lib.php에

function sql_password_old($value)
{
$row = sql_fetch(" select old_password('$value') as pass ");
return $row[pass];
}
를 추가해주고,

bbs/ login_check.php
에서
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}

if (!$mb[mb_id] || ((sql_password($mb_password) != $mb[mb_password]) and (sql_password_old($mb_password) != $mb[mb_password]))) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
로 수정했습니다.
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
15년 전 조회 747
15년 전 조회 1,011
15년 전 조회 990
15년 전 조회 2,832
15년 전 조회 1,454
15년 전 조회 1,461
15년 전 조회 1,715
15년 전 조회 1,580
15년 전 조회 1,536
15년 전 조회 2.6만
15년 전 조회 1,642
15년 전 조회 1,518
15년 전 조회 836
15년 전 조회 1,661
15년 전 조회 953
15년 전 조회 938
15년 전 조회 957
15년 전 조회 1,516
15년 전 조회 1,558
15년 전 조회 951
🐛 버그신고