[MySQL] PASSWORD() 関数の 結果値が 変わった 時 (MySQL 4.1から 変わり)
MySQL バージョンが 4.1大道 越えて来ながら MySQL してした PASSWORD()
義 暗号化 方法が 変わったと する. 以前のPASSWORD()
関数は 16席 結果物(亥時値)を 出す ところ 惚れて 新しいPASSWORD()
関数は 41席 結果物を 出す.
使用者 認証の時 PASSWORD()
関数を 使って あったら, MySQL バージョンが 変わった 時 困り果てられる. これ 時 仮装(家長) 簡単な 対処法は, PHPイン 場合 コードに 次 値段を 追加して 与える のだ.
//mysql 連結を たいてい 後 @mysql_query( 'set old_passwords = 1 ');
こんなに すれば 問題が 解決される.
違う 方法 1. my.cnf
に old_password = 1
追加
違う 方法は 私が 実際で 日 見るのは なくて ささいな 正確性が 落ちる 数 ある.
/etc/my.cnf
ファイルを 捜して old_password = 1
という オプションを 追加して 与えれば 解決されると する. (my.cnf
ファイルの 位置は 使って ある 運営体制に よって 違う. そして 運営体制が ようで MySQLを どうに 設置して 使って イッニャに よって 違う. /etc/my.cnf
増えた リナックス 基本 設置 基準である ようだ.)
違う 方法 2. OLD_PASSWORD()
関数を 使用
もし ソース コードを はっきりと 管理する 数 あって, DB だからにだけ 問題が 生じた ことなら, MySQL クイーリー 部分のPASSWORD()
関数を OLD_PASSWORD() 関数で 変更して 与える. それでは こぎれいに 解決される ことだ.
違う 方法 3. PHP路 代替
PHP 関数を 立ち後れて 見たら old_password()
を 具現して おいた ガール 捜す 数 あった. これを 使う 首都 ある.
function old_password($password) { $nr=0x50305735; $nr2=0x12345671; $add=7; $charArr = preg_split("//", $password); foreach ($charArr as $char) { if (($char == '') || ($char == ' ') || ($char == 't')) continue; $charVal = ord($char); $nr ^= ((($nr & 63) + $add) * $charVal) + ($nr << 8); $nr2 += ($nr2 << 8) ^ $nr; $add += $charVal; } return sprintf("%08x%08x", ($nr & 0x7fffffff), ($nr2 & 0x7fffffff)); }
- コメント機能はありません。コメントの代わりに[email protected]
にメールを送ってください。