MySQL에서는 패스워드는 독자의 방법으로 암호화된다. (한방향)
MySQL 4.1에서 이 방식이 변경되었다.
mysql> select password('mycom');
+-------------------------------------------+
| password('mycom') |
+-------------------------------------------+
| *5BD79BBCCD59CEB5DC80FB46F393EC6FA414994D |
+-------------------------------------------+
1 row in set (0.00 sec)
mysql> select old_password('mycom');
+-----------------------+
| old_password('mycom') |
+-----------------------+
| 0425a28758eb7712 |
+-----------------------+
1 row in set (0.00 sec)
4.1이상의 패스워드는 PASSWORD() 함수에서 4.0이하의 패스워드는 OLD_PASSWORD()함수로 확인할 수 있다.
또 4.1이상에서 4.0까지의 암호화를 사용하려면 다음과 같은 방법이 있다.
①mysqld --old-passwords
②SQL문에서는 OLD_PASSWORD()함수를 사용한다.
old-passwords옵션을 지정하면 4.1이상의 PASSWORD()함수는 OLD_PASSWORD()함수와 같은 동작을 한다.
4.0이하의 클라이언트에서 4.1이상의 서버에 접속하려고 하면 다음과 같은 에러가 나올 때가 있다.
"Client does not support authentication protocol requested by server; consider upgrading MySQL client"
이것에 대처하기 위해서는 mysql.user.Password컬럼의 값을(패스워드) OLD_PASSWORD()함수로 세팅한다.