docker의 redash와 로컬 mysql을 연결

3076 단어 MySQL도커redash
docker에 세운 redash와 로컬 mysql을 연동시키는 데 조금 힘들었기 때문에 방법을 남겨두려고 생각합니다.

  • redash란?
  • OSS에서 제공하는 대시 보드 작성 도구
  • 데이터를 redash에 연계시킴으로써 코드 등을 작성하지 않고 데이터를 그래프화 할 수 있습니다


  • 이번 목적
  • docker에 서있는 redash와 Macpc의 로컬에서 실행중인 mysql을 연동시킨다
  • mysql 데이터를 redash로 그래프화
    (redash 자체의 개발은 실시하지 않는 가정입니다)


  • git clone
    git clone https://github.com/GitSumito/redash-v7.git*버전 8이 가장 최신이지만 버그가 많이 나왔기 때문에 버전 7을 복제했습니다.
    또한 docker의 build시에 에러가 많이 발생했기 때문에 build 끝난 것을 클로닝하고 있습니다

    환경 변수 설정 (postgres에 인증없이 액세스 할 수 있음)
    redash.env 파일에POSTGRES_HOST_AUTH_METHOD=trust를 쓰면 postgres 액세스시에 나오는 auth의 에러가 나오지 않게 됩니다만 용도에 따라 구분해 주세요

    컨테이너 시작docker-compose run --rm server create_dbdb에 ddl을 흘려docker-compose up -d컨테이너 시작
    * 로그를보고 싶다면 docker-compose up에서 명령을 실행하십시오.

    redash에 액세스http://localhost指定したport 방문
    redash 등록 화면이 표시되면 정보를 입력하고 [Setup]으로 등록


    데이터베이스와의 협력
    Setup이 완료되면 아래 화면으로 이동합니다.


    데이터베이스 연동에 사용하는 것은 중간의이 부분입니다.

    *이미지에는 사선이 그려져 있지만 초기 상태에서는 그리지 않은 상태에서 정확합니다.

    1. Connect a Data Source를 누르십시오.

    mysql을 리소스로 지정한 화면 뒤에 이러한 화면이 표시된다고 생각합니다.
    여기서 Hosthost.docker.internal를 입력하십시오.UserPassword에 mysql 정보를 입력하십시오.


    저장

    [save] 버튼을 누름
    dashboard로 돌아가기 2.Create your first query를 눌러 데이터가 연동되면 완료됩니다.

    보충

    왜 Host가 host.docker.internal와 같은 문자열이 될까요?
    그것은 docker와 Mac은 친구이지만 docker와 mysql은 친구의 친구입니다.
    즉, 타인이므로 docker에서 직접 mysql을 연계 할 수 없기 때문입니다.
    ×docker→mysql
    ○docker→Macポート→mysql
    

    그래서 한 번 맥의 포트를 통과해야합니다.
    그래서 Mac 포트에 해당하는 것이 host.docker.internal입니다.


    덧붙여서 host.docker.internal는 docker만이 알고 있는 포트, 목적지를 위해 Mac에서 액세스하려고 해도 액세스는 할 수 없기 때문에 아래와 같은 화면이 되어 버립니다



    앞으로도 host.docker.internal 도움이 될 것입니다!

    잘못 등 있으면 코멘트 부탁드립니다!

    끝내!

    좋은 웹페이지 즐겨찾기