프로그램/mysql

MySql 로 접속할 때 "Authentication with old password no longer supported, use 4.1 style password"

(주)CKBcorp., 2013. 7. 25. 05:00
반응형



제목 그대로다.

나의 경우는 C#으로 작업하다가 접한 내용인데,

C#에서 mysql 로 접속하기 위해 접속 문자열을 작성했더니 제목과 같은 에러가 발생했다.


"Authentication with old password no longer supported, use 4.1 style password


구글신께 "C# Authentication with old password no longer supported, use 4.1 style password" 로 질문하였더니, 바로 계시를 내려 주신다.


http://stackoverflow.com/questions/15772479/authentication-with-old-password-no-longer-supported-use-4-1-style-passwords ( 진리의 stackoverflow )


음...혹시나 영어 울렁증을 있으신 분들이 계시다면, 아래의 해결책대로 하시면 됨.


1. console 등을 이용, mysql 에 접속한다.

$mysql -u root

2. mysql 콘솔에서 이하의 두 문장을 실행한다.

mysql> SET SESSION old_passwords=0;

mysql> SET PASSWORD FOR 너님계정아이디=PASSWORD('너님계정암호');

3. C#으로 다시 접속해 본다.
4. 성공을 즐긴다.

나는 이걸로 됐는데, 글쓴이는 "만일 안되면, 그냥 SET PASSWORD=PASSWORD('암호') 로 해보셈 " 뭐 이렇게 써있다. 참고하시길.


이거 내용을 좀 보니까, MYSQL 이 4.1 버전 이전과 이후로 암호 처리 방식이 다른가 보다.
저 PASSWORD() 함수는 "일반 문자열->암호화된 문자열" 로 바꾸어 주는 함수 같은데, 암호화 방식도 다른듯.( 아님 이전엔 암호화 안하고 그냥 평문을 넣었던가 )
그래서 심지어 OLD_PASSWORD() 함수도 존재하는 듯 하다.

아. 그리고 혹시나해서 적어놓는 C#의 MYSQL 접속 문자열은 다음과 같다.

string connStr = string.Format(@"server=domain123.co.kr;user=아이디;password=암호;database=디비이름;port=3306");

결론 : StackOverflow 를 경배하라.




 


반응형