본문 바로가기
IT/Tip

도커로 설치된 Redash 에서 MySQL 접속이 안되는 경우

by 여우요원 2024. 8. 10.

문제의 상황은 아래와 같습니다.

 

1. mac (14.x) 에 homebrew 를 이용하여 mysql (8.x) 이 설치됨.

 - termianl 이나 dbeaver 같은 tool 에서 접속이 잘 되고 있음.

 

2. docker 를 이용하여 redash를 설치.

 - biqquery 에 잘 접속이 되는 것을 확인.

 - 문제는 local에 설치된 mysql 에 접속이 안되는 사황.


 

리대시에서 mysql 을 연결했을 때 나오는 에러는 이렇습니다.

 

(2006, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

 

이는 mysql 서버가 켜져 있지 않거나, 아예 접속을 못하여 서비스를 인지하지 못하는 경우입니다.

아래의 경우를 다 체크해봐도 같은 메시지를 받고 있었는데,

  • 방화벽 체크 (내 경우는 꺼져있음)
  • mysql 외부 연결 (권한설정)허용 
  • mysql root 계정이외 일반 계정 사용

host 의 주소에 "localhost" 가 아닌 "host.docker.internal" 로 변경해서 해결했다는 글 발견

https://discuss.redash.io/t/install-redash-through-docker-how-can-i-connect-mysql-on-the-localhost/8333

 

Install redash through docker. how can i connect mysql on the localhost

poryfly April 21, 2021, 3:26am 1 I install redash on the mac through docker. Mysql also had been installed on the mac. And mysql also allowed any host. I can reference mysql on other host. But when connect mysql,it has some err:"2006, “Connection Test Fa

discuss.redash.io

 

이렇게 해서 접속의 문제는 해결을 하였다.

 


접속이 되니 다른 에러가 보였다. (접속이 되었다는 증거이므로, 한 단계 진전)

2006, 'RSA Encryption not supported - caching_sha2_password plugin was built with GnuTLS support'

 

글을 찾아보니

mysql 8.x 은 두 가지 인증방법을 가지고 있는데, "mysql_native_password" 와 "caching_sha2_password" 이다.

여기서 default 는 "caching_sha2_password" 이고, caching_sha2_password를 사용하려면

  • SSL 보안연결을 사용할거나
  • RSA 보안을 적용한 비암호 연결을 사용해야 한다.

해야하는데, 이 문제를 가장 쉽게 해결하는 방법은 그냥 구식 mysql_native_password를 사용하는 것이다.

아래와 같이 사용자의 pw 인증 방식을 mysql_native_password 방식으로 변경

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

 

https://kogle.tistory.com/87

 

MySql : MySql 8.0이상 caching_sha2_password authentication plugin 문제해결

아래 링크는 개인 홈페이지에 각 쇼핑몰 판매량를 트레킹해서 만든 저렴한 딜 정보 모음페이지이다. 뽐뿌 같은 핫딜 사이트 가기 번거로워서 만들었는데, 고물과 시대에 아무 생각없이 사용하

kogle.tistory.com


하여서

접속 성공