Live Brilliant

[에러:mysql]error::Client does not support authentication protocal 본문

개발은 핵찜이야/DATABASE

[에러:mysql]error::Client does not support authentication protocal

주인정 2012. 4. 17. 16:11
1. 첫번째 문제점

MySQL 4.1 이상 버전에서는 비밀번호를 해쉬알고리즘을 기반으로한 인증 프로토콜을 사용합니다.
그리고 해당 기능이 하위버전의 Client와 호환이 되지 않기에 서버를 4.1이상으로 업그레이드를 한 후에
아래와 같은 에러메세지를 접하게 될수 있습니다.

shell> mysql
Client does not support authentication protocol requested
by server; consider upgrading MySQL client

위의 문제점을 해결하기 위해서는

1. 모든 Client 프로그램을 4.1이상으로 업그레이드한다.
2. 사용하려는 계정을 4.1 이전 Client 프로그램과 통신이 가능한 이전 비밀번호 체계로 변경한다.

mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

Alternatively, use UPDATE and FLUSH PRIVILEGES:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

3. --old-passwords 옵션으로 서버를 이전비밀번호 체계로 실행한다.

4.1 이후 비밀번호를 사용하는 계정을 모두 변경처리 한다.

SELECT Host, User, Password FROM mysql.user
-> WHERE LENGTH(Password) > 16;

님이 root로 접속이 가능했던것은 root는 비밀번호가 없어서 그렇습니다.


2. 두번째 질문

localhost로는 접속이 가능하고 IP로는 접속이 불가능한 이유는 접속가능한 IP로 등록이 되어 있지 않기 때문입니다.

select * from mysql.user

로 보시면 localhost는 보이나 IP는 보이지 않을것입니다.

mysql> grant all privileges on db명.* to 사용자계정@'IP주소'
identified by '비밀번호' with grant option;
mysql> grant reload,process on *.* to admin@localhost;
mysql> FLUSH PRIVILEGES;

위의 명령어로 접속가능한 IP로 등록해 주면됩니다.

 

'개발은 핵찜이야 > DATABASE' 카테고리의 다른 글

[mysql] 많이쓰는 명령어  (0) 2012.04.17
[mysql]미러링 에러시 처리사항  (0) 2012.04.17
[mysql] 기본명령어  (0) 2012.04.17
[mysql ] 백업 명령  (0) 2012.04.17
MSSQL 단일 사용자 해제  (0) 2012.04.17
Comments