테스트를 위해 centOS에 mysql 5.7 버전을 설치 하고 client 툴인 workbench를 접속하려고 하는데 아래의 에러가 발생하였습니다.
SSL connection error: error:0
A000102:SSL routines::unsupported protocol이라고 발생하였으며 접속이 되지 않았습니다.
원인으로는 useSSL이라는 설정때문인데 default값이 true입니다. 이것을 false로 되게 하면 됩니다.
workbench의 경우에는 SSL 탭에 있습니다.
기본적으로 if available 로 설정되어 있습니다. No로 바꿔줍니다.
다시 시도하니 잘되는것을 확인할 수 있습니다.
끝.
+) 추가궁금증
SSL은 무엇이고 왜 default가 true인가요
서버와 JDBC 드라이버 사이의 데이터 전송을 SSL을 사용하여 모두 암호화할 수 있습니다.
해당 기능을 활성화하면 성능저하가 발생하며, 그 심각도는 네트워크 대역폭, 데이터양 등에 의해서 다를 수 있습니다.
시스템은 두개의 Java 키 저장소 파일을 통해 작동합니다. 한 파일에는 서버에 대한 인증서 정보가 포함되어 있고, 다른 파일에는 클라이언트에 대한 키와 인증서가 포함되어 있습니다. 모든 Java키 저장소 파일은 파일을 생성할 때 keytool에서 제공된 비밀번호로 보호됩니다.
SSL 연결을 생성하려면 파일 이름과 관련 비밀번호가 필요합니다.
OpenSSL로 컴파일된 Mysql Server 5.7,8.0,8.1의 경우 시작시 누락된 SSL파일을 자동으로 생성하고 이에 따라 SSL 연결을 구성할 수 있습니다.
8.0.12 이하 버전 : 서버가 SSL을 사용하도록 올바르게 구성되어 있는 한 암호화된 연결을 사용하기 위해 클라이언트에서 어떤 것도 구성할 필요는 없습니다. 예외적으로 매우 오래된 서버에 연결하는 경우(5.6.25 이하 또는 5.7.5 이하는 useSSL=true를 사용하려면 클라이언트가 연결 속성을 설정해야 함)
8.0.13 이상의 경우
서버가 SSL을 사용하도록 올바르게 구성되어 있는 한 암호화된 연결을 사용하기 위해 클라이언트에서 어떤 것도 구성할 필요는 없습니다.
sslMode=REQUIRED 클라이언트는 연결 속성 , VERIFY_CA또는 을 설정하여 SSL 사용을 요구할 수 있습니다.
저도 모르는 부분이 있지만, 간단하게 말해서 SSL이란 Secure Sockets Layer 로써 데이터 암호화를 통해 보안관점에서 필요한 기능입니다. 따라서 default는 true로 설정되어 있는것으로 알 수 있네요.
(SSL을 true로 하고 동일하게 workbench를 통해 접속을 하고 싶다면... 좀더 연구해봐야 겠네요. 출처를 보면 파일을 통해서 할 수 있을것 같기도 합니다...)
출처 : https://dev.mysql.com/doc/connector-j/8.1/en/connector-j-reference-using-ssl.html
'다른 DBMS > MySQL&MariaDB' 카테고리의 다른 글
[Client 접속에러] Unblock with 'mysqladmin flush-hosts' (0) | 2023.10.30 |
---|---|
MySQL 업그레이드 (2) - 마이너 업그레이드 (2) | 2023.10.24 |
변수를 적용하는 새로운 방법 - SET PERSIST (0) | 2023.10.18 |
MySQL의 업그레이드 (1) (0) | 2023.08.24 |
Recursive 구문을 활용한 연,월 dummy 데이터 생성 (0) | 2023.08.14 |
댓글