前天遷移了一個老系統,用的mysql是4.0要遷移到5.0的環境下,發現了一個問題,在password()函數上發生錯誤,查一查原來password()函數在mysql5.0已經發生了變換
在mysql4.0下
mysql> select password('abc');
+------------------+
| password('abc') |
+------------------+
| 7cd2b5942be28759 |
+------------------+
而在mysql5.0下
select password('abc');
+-------------------------------------------+
| password('abc') |
+-------------------------------------------+
| *0D3CED9BEC10A777AEC23CCC353A8C08A633045E |
+-------------------------------------------+
經查資料,在mysql5.0下使用old_passord()函數就可以得到與4.0一樣的效果
select old_password('abc');
+---------------------+
| old_password('abc') |
+---------------------+
| 7cd2b5942be28759 |
+---------------------+
但只要需要改動到程序,再進行查資料
兩個函數都可以用password() 函數調用,
控制開關由/etc/mysql/my.cnf中的old_passwords變量設定:
設置為“0” ,調用新的password函數,
設置為”1″,就調用舊的password函數。
問題最終解決,不用修改程序
----------------------------------------
陳于喆
Mail: chenyz@corp.netease.com