Mysql 다른 컴퓨터 접속 - Mysql daleun keompyuteo jeobsog

티스토리 뷰

MySQL 설치 후 외부에서 접속하기 위해 접근 허용 IP를 등록하는 방법입니다.

◎ MySQL Database 설정
 > 권한확인
  - 처음 설치 후 로컬에서 접속하여 권한을 확인해보면 localhost 또는 127.0.0.1만 등록되어 있습니다.

 mysql> use mysql;
 mysql> select host, user from user;
 |    host    | user |
 | localhost | root |
 mysql> show grants for current_user;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'


 > 권한설정
  - 아래는 모든 db에 all privileges(모든 권한)을 부여하는 쿼리입니다.
  - 특정 IP 접근 허용

 mysql> grant all privileges on *.* to ‘root’@‘192.168.1.2’ identified by ‘패스워드’;

  - 특정 IP 대역 접근 허용

 mysql> grant all privileges on *.* to ‘root’@‘192.168.1.%’ identified by ‘패스워드’;

  - 모든 IP 접근 허용

 mysql> grant all privileges on *.* to ‘root’@‘%’ identified by ‘패스워드’;


 > 권한변경
  - 권한을 부여한 IP 정보를 수정합니다.

 mysql> update user set host = '192.168.1.2' where user ='root' and host='192.168.1.%';
 mysql> flush privileges;


 > 설정확인
  - 접속을 허용하려는 IP에 대한 권한을 확인합니다.

 mysql> select host, user from user;
 |      host      | user |
 | 192.168.1.% | root |
 |   localhost   | root |
 mysql> show grants for current_user;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%''


 > 설정적용

  - 접속을 허용하려는 IP에 대한 권한 설정을 적용합니다.


 > 권한 제거
  - 특정 IP 접근 허용 제거

 mysql> delete from mysql.user where host=’192.168.1.2′ AND User=’root’;

  - 특정 IP 대역 접근 허용 제거

mysql> delete from mysql.user where host=’192.168.1.%′ AND User=’root’;

  - 모든 IP 접근 허용 제거

mysql> delete from mysql.user where host=’%’ AND User=’root’;


 > 설정 적용
  - 접속을 허용하려는 IP에 대한 권한을 확인 후 설정을 적용합니다.

 mysql> select host, user from user;
 mysql> flush privileges;


 > MySQL 접속


◎ MySQL IPTABLES 설정
 > mysql 서버  iptables 설정
  - mysql 서버에  iptables에서 mysql포트가 차단되어 있는지 확인합니다.
  - my.cnf 파일에 아래와 같은 설정이 있을 시 주석처리 또는 삭제합니다.

 $ sudo vi /etc/my.cnf
 # bind-address = 127.0.0.1 // 주석처리 또는 삭제


 > mysql 재시작

# /etc/init.d/mysqld restart


 > MySQL 접속

MySQL 원격 접속MySQL 서버 접속

1 사전 작업[ | ]

  • MySQL 원격 접속 허용

2 방법[ | ]

mysql -h서버주소 -u아이디 -p패스워드

[root@zetawiki ~]# mysql -h235.79.246.80 -utestuser -pP@ssw0rd
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 110
Server version: 5.5.28-log MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

3 같이 보기[ | ]

  • MySQL 원격 접속 허용
  • 원격 mysqldump
  • MySQL SSH 터널링
  • ERROR 1045 (28000): Access denied for user
  • ERROR 2003 (HY000): Can't connect to MySQL server on

Mysql 다른 컴퓨터 접속 - Mysql daleun keompyuteo jeobsog
업무에서 사용한 기술을 개인적으로 정리를 하기 위해 비슷한 구조로 토이프로젝트를 진행을 하고 있다.
SpringBoot를 사용한 BackEnd와 Node.js + Vue를 사용한 FrontEnd로 프로젝트를 구성하였다.
프로젝트 구성관련 포스팅은 어느정도 환경을 구성후 조금씩 포스팅할 예정이다.
서버를 따로 준비하지 않아서 로컬 DB로 MySQL을 사용하는 도중 외부에서도 로컬 DB에 접속해야 하는 일이 생겼다.
외부 네트워크에서 자택 공유기 DDNS 설정을 통해 접속하여 DB원격 접속을 하는 방식으로 진행하겠다.
DataBase : MySQL
Tool           : MySQLWorkbench & DataGrip
Server. : Window
Client   : Mac

MySQL의 경우 기본으로 설치를 완료하면 root계정이 생성되는데 root계정의 경우엔 localhost, 즉 로컬 환경에서만 접속이 가능합니다.

root계정을 외부에서 접속할 수 있도록 설정할 수 있지만 이번 포스팅에선 외부에서 로컬 DB를 접속하기 위해 외부 접속용 사용자를 추가하도록 하겠습니다.

MySQLWrokbench를 사용하여 사용자를 등록하도록 하겠습니다.

Mysql 다른 컴퓨터 접속 - Mysql daleun keompyuteo jeobsog

우측 "Users and Privileges" -> "Add Account"을 클릭하여 사용자를 추가해줍니다.

추가 시 주의할 점은 Limit to Hosts matching란에는 %를 넣어주셔야 외부에서 접속이 가능합니다.

사용자 등록을 완료하였다면 상단 탭에서 "Schema Privileges"를 클릭하여 권한을 부여할 스키마와 허용범위를 지정합니다.

Mysql 다른 컴퓨터 접속 - Mysql daleun keompyuteo jeobsog

저 같은 경우 특정 사용자가 특정 스키마만 접근이 가능하도록 설정하였는데 스키마를 생성하는 방법은 아래 링크를 참고해주세요.

▶︎MySQL Workbench 사용법 - 스키마 생성, 테이블 생성, CRUD(select, insert, delete, update)

다음으로 외부에서 로컬 DB를 접속하는 것이기 때문에 먼저 로컬 PC와 연결되어있는 공유기의 DDNS 설정이 필요합니다.

공유기 DDNS 설정은 아래 링크를 참고해주세요.

▶︎ipTIME공유기 DDNS 설정 방법 간단 정리


DDNS 설정을 완료하였다면 포트 포워딩을 해줘야 합니다.

MySQL의 포트는 3306으로 외부 포트와 내부 포트를 설정해주시면 됩니다.

Mysql 다른 컴퓨터 접속 - Mysql daleun keompyuteo jeobsog

여기까지 이제 로컬 DB에 접속하기 위한 준비는 끝났습니다.

이제 Client인 Mac에서 원격 접속을 해보겠습니다. 먼저 터미널을 사용해 MySQL에 원격 접속이 가능한지 테스트해보겠습니다.

터미널에 접속 후 "mysql -h ?????.iptime.org -u 사용자명 -p" 명령어를 실행해주세요.

Mysql 다른 컴퓨터 접속 - Mysql daleun keompyuteo jeobsog

명령어 실행 후 password는 위에 단계의 사용자 등록 시 등록한 패스워드를 입력하면 되겠으며, 접속 확인 후

"show databases;" 명령어를 실행하면 권한이 부여된 Database까지 확인을 할 수 있습니다.

접속까지 확인이 되었다면 Client에서 사용하는 DBTool에서도 접속이 가능한 것이니 등록한 정보로 동일하게 접속하시면 되겠습니다.

구독하기👍 눌러주시고 자주 놀러와 주세요.

공감 ,댓글⌨은 저에게 큰 힘이 됩니다.

감사합니다.🤗

.

.

.

🙏잘못된 정보의 피드백은 댓글 남겨주세요.🙏