에러 발생
외부 MySQL 서버에 접속을 시도하였을 때 아래 오류 메시지가 발생할 수 있다.
Error Message
ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client
원인
MySQL 4.1 버전부터 PASSWORD() 함수가 변경되었다.
SELECT PASSWORD('암호') 쿼리가 출력하는 실행 결과가 버전에 따라 각각 다르다.
문제는 기존에 서버 간에 (또는 서버-클라이언트 간) 접속 허용 설정을 아래와 같은 GRANT 문으로 하였을 것이고,
mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@'A서버ip' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;
이는 mysql.user 테이블을 대상으로 하는데, 그 중에서도 암호는 password 칼럼이다.
처리
서버 간의 버전 차이 문제를 해결하기 위해 OLD_PASSWORD() 함수가 있다.
접속을 시도하는 클라이언트 계정이 4.1 이전 버전의 암호화 알고리즘을 사용한다고 UPDATE 해 주면 된다.
mysql> UPDATE user SET password=OLD_PASSWORD('password') WHERE ...(생략)...;
mysql> FLUSH PRIVILEGES;
'서버&시스템 > MySQL' 카테고리의 다른 글
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log (0) | 2014.04.24 |
---|---|
MySQL Replication (마스터-슬레이브 동기화) 설정 (0) | 2014.04.08 |
저장 프로시저 백업 (0) | 2013.05.02 |
binary log 정리, 삭제 주기 설정 (0) | 2013.02.15 |
mysql 콘솔 명령어 기록 지우기(리눅스) (0) | 2012.01.12 |