갈리레요
255
2021-08-02 19:03:15 작성 2021-08-02 19:06:45 수정됨
12
2067

DB 외부 접속하는 법에 대해서 여쭙니다.[3일을 삽질만 했습니다.]


원도우  -> 라즈베리파이 DB에 접속

가상환경[우분투] -> 라즈베리파이 DB에 접속


목표 : 원도우에서 라즈베리파이db에 접속하고 싶습니다. 또한, 가상환경[vmware에서 우분투로 접근하고 싶습니다.]


1. mariadb설치

1.5 -> mysql -u root -p로 접속

2. 새로운 계정 생성 [root계정있지만 그거 말구요.]

3. 권한 부여 : grant all privileges on *.* to  계정아이디 @% identified by '비밀번호';

4. flush privileges; 해주고 적용이요.

5. sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 에 있는 bind = 127.0.0.1    #으로 주석처리

6. systemctl restart mysql.service 합니다.


라즈베리파이에서는 위 처럼 설정완료



이제 원도우에서 DBeaver에서 라즈베리파이 아이디 주소 hostname, server host[ip입력 접속할 아이디 입력]

라즈베리파이에 db에 설정해 놓은 db, 비밀번호 입력 하여 접속하면 


Could not connect to address=(host=아이피주소)(port=3306)(type=master) : Socket fail to connect to host:아이피 주소, port:3306. Connection timed out: connect

  Socket fail to connect to host:아이피 주소, port:3306. Connection timed out: connect

  Socket fail to connect to host:아이피 주소, port:3306. Connection timed out: connect

    Connection timed out: connect

    Connection timed out: connect


그래서 방화벽 문제인줄 알고 라즈베리 파이 방화벽주 ACCEPT해주구요.

원도우에서 라즈베리파이로 접속하여 그러면 라즈베리파이 입장에서는 외부에서 접속하는 거죠? 그러니 
원도우에 DB는 라브제리파이 아이피를 입력해야 되죠? 라즈베리파이에서는 방화벽, DB호스트 계정을 %로 설정하구요. ㅜㅜ




도대체 무엇이 문제인줄 모르겠어요ㅜㅜ





0
  • 답변 12

  • 나도이젠맥북오우너
    1k
    2021-08-02 19:15:15

    같은 네트워크망인가요?

  • 갈리레요
    255
    2021-08-02 19:25:53


    네 한 공유기로 사용중입니다. ㅜㅜ

    inet은 달라서.. ㅜ요!!


    라즈베리는 lan 3에 꼽고

    원도우는 lan4에 꼽구요,.




  • 갈리레요
    255
    2021-08-02 19:27:27

    제가 다녔던 학원에서는 192.45.16.31~65까지 아이피가 있구요,. 학원생들끼리 db로 외부 접속도 되구요. 서로 상호간에 통신도 되더라구요. 혹시 그렇게 설정하려면 어떻게 해야 되나요?

  • 갈리레요
    255
    2021-08-02 21:01:58

    그래안그래님 제가 이해한게 맞긴 맞나요? 위에 글쓴거요. 또한, 같은 망이면 안되나요? 그런거 같은데.. 확실치가 않아서요. 외부접속이라는 의미는 서로 다른 망에서 통신하는걸 말하지 않나요?

  • 안전라이딩
    2021-08-02 22:35:51
    nestat -tln | grep 3306

    쳐봐서 bind 주소 제대로 나오고 있나 확인해보세요.

  • 갈리레요
    255
    2021-08-03 01:04:13

    그러니깐!! listen 상대로 나와요. 현재 대기 중인가요? 

    위 처럼 작성하니!! tcp6 0 0 :::3306 :::*  LISTEN이라고 나옵니다.


    근데.. 이것을 라브베리파이에다가 작성해야 되요?

    아니면 원도우에 터미널에 작성해야 되요?


  • plwtcs
    928
    2021-08-03 08:51:09
    서로 Ping은 되나요?
  • 안전라이딩
    2021-08-03 09:16:20 작성 2021-08-03 09:22:13 수정됨
  • 갈리레요
    255
    2021-08-03 12:06:19 작성 2021-08-03 12:55:46 수정됨


    저 같은 경우 mariadb입니다. 그래서


    sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf에서 작업합니다. vim으로요.

    service mysql restart하구요. 


    bind-address                    =  0.0.0.0


    말씀하신대로.. 작업했습니다. 그런데요


    .

    주석안하구요. 해도 안해도.. ㅜㅜ 그대로 똑같은 오류가 생깁니다.

    [dbeaver에서 mariadb로 설정해서 접속시 애러]

    Could not connect to address=(host=아이피 주소)(port=3306)(type=master) : Socket fail to connect to host:아이피주소, port:3306. Connection timed out: connect

      Socket fail to connect to host:아이피주소, port:3306. Connection timed out: connect

      Socket fail to connect to host:아이피주소, port:3306. Connection timed out: connect

        Connection timed out: connect

        Connection timed out: connect



    [dbeaver에서 mysql로 설정해서 접속시 애러]

    Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

      connect timed out

      connect timed out


    이제 전혀 다른 오류 입니다. ㅜㅜ


  • 갈리레요
    255
    2021-08-03 12:46:22

    이렇게 나옵니다. ㅜㅜ

  • 갈리레요
    255
    2021-08-03 13:13:50

    원도우 화면입니다. -- 사실 위 논리이면, 접속이 되어야 하는게 사실인데요. 

    원도우 <---> 라즈베리파이 db연결

    그러면 원도우에서 라즈베리파이쪽 db를 자주롭게 컨트롤 할 수 있다. 그렇치요..


    근데.. 접속이 위 처럼 오류가 나요 ㅜㅜ

  • 갈리레요
    255
    2021-08-06 22:24:47

    해결했습니다. 

  • 로그인을 하시면 답변을 등록할 수 있습니다.