Q1. Mysql 접속시에 ” MYSQL ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref used (client option ‘secure_auth’ enabled) ” 오류 발생
원인: 사용자 암호 해쉬값을 예전 것을 사용해서 생기는 문제
해결 1 : –skip-secure-auth 옵션 사용
=> 접속 할때 Mysql의 클라이언트의 암호 Hash수준을 낮 춰서 접속 ( 임시적인 방법 )
해결 2: 보다 근본 적인 해결 방법..
Mysql > use mysql;
Database changed
Mysql > describe user;
describe user;
+———————–+———————————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+———————–+———————————–+——+—–+———+——-+
| Host | char(60) | NO | PRI | | |
| User | char(16) | NO | PRI | | |
| Password | char(41) | NO | | | |
password 필드가 41 bytes 이상인 것을 확인 해야 함. 새로운 암호 해쉬는 적어도 41 바이트가
되어야 함
Mysql > show variables like ‘%pass%’;
+———————-+——-+
| Variable_name | Value |
+———————-+——-+
| old_passwords | ON |
| report_password | |
+———————+——-+
2 rows in set (0.06 sec)
"old_passwords" 이 값을 OFF로 만들어야 함
:
Mysql > set session old_passwords = 'OFF';
Query OK, 0 rows affected (0.05 sec)
Mysql > show variables like '%pass%';
show variables like '%pass%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| old_passwords | OFF |
| report_password | |
+-----------------+-------+
2 rows in set (0.06 sec)
됐으면.. 확인 차원에서 사용자 만들어 본다..
Mysql > create user 'erich' IDENTIFIED BY 'SEKRIT PASSWORD';
.아래처럼 길게 나오면 성공..
Mysql > select * from user order by User;
+-----------+--------------+-------------------------------------------+--------
| Host | User | Password | Select_
+-----------+--------------+-------------------------------------------+--------
| localhost | someguy | 3d9505dd323e53f1 | Y
| % | someotherguy | 79b3df3b004bb855 | Y
| % | erich | *D2589EF6B59146801234567897BB190123456789 | N
| % | anotheroldguy| 60577e0d77b9212b | Y
이상..