mysql 8과 mysql 5의 password 함수 한줄 호환

Tip & Tech

활용팁

홈 > 회원포럼 > 활용팁
활용팁

mysql 8과 mysql 5의 password 함수 한줄 호환

1 dkal고 3 376 1 0

lib/common.lib.php에서


function sql_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
    //$row = sql_fetch(" select password('$value') as pass ");
    //2020.6.17
    $row = sql_fetch(" select CONCAT('*', UPPER(SHA1(UNHEX(SHA1(('$value')))))) as pass ");

    return $row['pass'];
}

 

    //$row = sql_fetch(" select password('$value') as pass ");

 

주석처리하고

 

    $row = sql_fetch(" select CONCAT('*', UPPER(SHA1(UNHEX(SHA1(('$value')))))) as pass ");

 

로 대체하면

 

1줄로 mysql 8과 mysql 5의 password 함수 호환이 되어 로그인등 모든것이 가능해짐.

3 Comments
11 우성군 08.28 10:10  
추천드립니다.

Congratulation! You win the 41 Lucky Point!

2 라벤더 08.28 23:41  
아마존 라이트세일 lamp에서 아미나 빌더 설치하면 로그인 안되던데 이렇게 하면 해결 되나요?
mysql 8.0 에서 더 낮은 버전을 설치하라는 방법만 있던데 안되어서요
1 dkal고 08.29 00:12  
mysql 5.7을 mysql 8.0으로 마이그레이션 하면서 썻던 방법입니다.
mysql 8.0에 password()함수가 제거되면서 그누보드와 아미나빌더가 먹통되서
급하게 이 방법으로 해결했습니다. 회원가입, 로그인등이 정상적으로 동작합니다.
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand