서버이전시 디비 mysql4 -> 5버전일때 수정할것 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

서버이전시 디비 mysql4 -> 5버전일때 수정할것 정보

서버이전시 디비 mysql4 -> 5버전일때 수정할것

본문

제가 기존 mysql버전이 4.x 버전입니다.
아시다시피 요즘 대부분 버전이 5.x 버전이다보니 패스워드 체계가
기존 old_password 에서 password 체계입니다.
이전할때 패스워드 때문에 고민하시는 분들이 많으실꺼라 생각되어
오늘 제가 해보고 이렇게 글을 올립니다.
저도 생초보라 모르는게 많아서 직접 해봤습니다.
결과적으로 성공했다는걸 먼저 알려드리고 설명 드릴께요.

우선 phpmyadmin 3.1.1 버전에서 작업하였습니다.

1. 기존 디비로 접속하여 백업받는다.
(전 g4_member 이 테이블 하나만 했습니다.)
먼저 g4_member 테이블 보기로 접속하셔서 '내보내기'를 클릭하시어 
'CSV 데이터'를 선택후 하단에 '파일로저장' 체크하신후 실행하시면
g4_member 하나만 csv 파일로 저장됩니다.

2. 이전할 디비로 접속하여 테이블 대치를 한다.
그누보드 새 버전이나 구 버전이나 설치를 하셨다면 g4_member 테이블이 생성되었겠죠?
g4_member 테이블을 클릭하고 보기를 누르신후 상단에 'import'를 선택하세요.
파일찾기를을 하여 이전 디비 g4_member.csv 파일을 선택하시고
파일문자셋을 utf8(이전디비가 euckr이였는데 euckr로하고 해보니 한글이 모두 깨저버리더군요)
을 선택 하단에 'Format of imported file'에서 'CSV'선택하시면 옆에
Options 이나오는데 여기서 '파일로 테이블 대치하기'를 선택하시어 실행하시면 됩니다.

이렇게 하시면 됩니다.

그리고 새로 이전한 그누보드에서 몇가지 설정을 해주어야 할께 있습니다.(그누 최신버전일경우)
'아빠불당님' 팁
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=11718
/lib/common.lib.php 에 다음 함수를 추가 합니다.
function sql_old_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
    $row = sql_fetch(" select old_password('$value') as pass ");
    return $row[pass];
}
 
/bbs/login_check.php의 15라인을 다음과 같이 수정 합니다.
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password] and sql_old_password($mb_password) != $mb[mb_password]))
/bbs/register_form.php의 66라인을 다음과 같이 수정
    if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]) && !($member[mb_password] == sql_old_password($_POST[mb_password]) && $_POST[mb_password]))
 
그러면 새로운 사용자는 새로운 패스워드로, 옛날 사용자는 옛날 패스워드로 login check를 하게 됩니다.

이상 초보의 허접팁이였습니다.

* 이전후에 관리자로 접속하니 어드민 아이콘이 생성되지가 안더라구요.
아무래도 그누보드 최근 버전에선 'admin'을 아이디로 만들수가 없는거 같더군요.
전 기존 버전에서 아이디가 admin이였습니다.
그래서 이전한 디비 테이블(phpmyadmin)에서 g4_member테이블에서 제껏만
수정하였습니다. 이때 아이디변경하고 패스워드를 변경 (old_password로 선택)후에
제 접속을 하니 어드민 아이콘이 보이더라구욤;;;

추천
3

댓글 8개

신규회원의 경우 저장되는 패스워드 포맷이 old_password가 아니라서 문제가 생길 수 있겠죠?
기존회원은 기존의 패스워드를 신규회원은 신규패스워드를 쓰게 하는 방식 입니다.
가장 좋은 것은 모든 회원의 패스워드를 신규로 바꾸는 것이죠. ㅎㅎ
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=11718
저도 실제로 오픈하고 문제가 되어서 급하게 저런 팁을 만들기는 했지만,
가장 좋은 것은 db 전체를 새걸로 바꾸는 것이더라구요.
그런데, 왜 저런팁을? 이라고 묻는다면 그때는 제가 php 코딩을 전혀~!!
못하던 때 였거든요. ㅋㅋ
전체 17 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT