Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 프로그래머스
- JavaScript
- jwt
- 개발자 취업
- 디자인패턴
- 99클럽
- 항해99
- 커스텀 헤더
- 인프콘 2024
- Spring multimodule
- 빈 충돌
- jwttoken
- 프로그래머스 이중우선순위큐
- spring batch 5.0
- 1주일회고
- Python
- 빈 조회 2개 이상
- 파이썬
- 코딩테스트 준비
- 단기개발자코스
- 전략패턴 #StrategyPattern #디자인패턴
- 구글 OAuth login
- 개발자부트캠프추천
- 디자인 패턴
- KPT회고
- infcon 2024
- TiL
- @FeignClient
- DesignPattern
- 취업리부트코스
Archives
- Today
- Total
m1ndy5's coding blog
DataGrip을 사용해 MySQL외부에서 접속하기 본문
https://www.jetbrains.com/ko-kr/datagrip/download/#section=windows
MySQL을 관리할 수 있는 프로그램은
- PhpMyAdmin
- WorkBench
- DataGrip
정도가 있다.
PhpMyAdmin
- 오픈 소스 데이터베이스 관리 프로그램
- https://ko.wikipedia.org/wiki/PhpMyAdmin
- 해커들이 크롤링할 수 있는 위험이 있음(보통 주소/phpmyadmin 이렇게 해놓기 때문에)
WorkBench
- SQL 개발과 관리, 데이터베이스 설계, 생성 그리고 유지를 위한 단일 개발 통합 환경을 제공하는 비주얼 데이터베이스 설계 도구
- https://ko.wikipedia.org/wiki/MySQL_%EC%9B%8C%ED%81%AC%EB%B2%A4%EC%B9%98
- 무료, 유료 두가지 버전이 있다.
- MySQL만 가능하다!!
DataGrip
- DB 개발과 관리를 용이하게 해주는 GUI 개발 도구
- PostgreSQL, MySQL을 비롯하여 SQL Server, Oracle, MongoDB와 같은 다른 많은 데이터베이스 및 DDL 데이터 소스를 지원
- 나같은 경우 학생용 라이센스로 무료로 사용중이다! (원래는 유료로 알고 있음)
이렇게 보니까 뭔가 DataGrip 홍보대사 인거 같긴한데 어쨌든 나는 아는 사람의 추천으로 DataGrip을 가장 먼저 접했다!
1. MySQL 사용자를 생성한다.
- $ sudo mysql -u root -p (비밀번호가 있다면 비밀번호 입력)
이렇게 뜨면 mysql 접속 성공이다. - mysql> create user 'm1ndy5'@'%' identified by 'password'; (m1ndy5 부분엔 name을 password 부분엔 비밀번호를 집어넣으면 된다.)
※ 사용자를 생성할 때 접속 범위를 지정할 수 있는 방법
- 'Username'@'%' : 해당 사용자는 외부에서 접근가능
- 'Username'@'localhost' : 해당 사용자는 내부에서만 접근 가능
- 'Username'@'xxx.xxx.xxx.xxx' : 해당 사용자는 지정한 ip주소로만 접근 가능
- mysql> show databases; // 모든 database를 보여줌
- mysql> select databases(); // 현재 database를 보여줌
- mysql> user mysql; // mysql database를 사용
- mysql> select user, host from user; // mysql database의 사용자 목록 출력
2. Database를 생성한다.
- mysql> create database Testdb;
- mysql> show databases;
데이터베이스 스키마를 생성한다음 확인해보면 잘 생성이 되어있는 것을 볼 수 있다.
3. Database에 권한을 부여한다.
- mysql> grant all privileges on Testdb.* to 'm1ndy5'@'%';
- mysql> flush privileges;
- mysql> show grants for 'm1ndy5'@'%';
이렇게 m1ndy5에 Testdb 관리에 관한 모든 권한이 주어졌다.
만약 권한을 뺏고 싶은 경우 revoke all privileges on Testdb.* from 'm1ndy5'@'%'; 해주면 된다.
4. 외부에서 접속할 수 있도록 설정한다.
이제 mysql을 나가고 mysqld.cnf 파일을 만져줄 것이다. (나갈 땐 exit입력하면 나가진다.)
- $ cd /etc/mysql/mysql.conf.d
- $ sudo vi mysqld.cnf
https://iamfreeman.tistory.com/entry/vi-vim-%ED%8E%B8%EC%A7%91%EA%B8%B0-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-%EB%8B%A8%EC%B6%95%ED%82%A4-%EB%AA%A8%EC%9D%8C-%EB%AA%A9%EB%A1%9D
위를 참고해서 vi 편집기 명령어는 익히면 된다!!
bind-adress 부분을 0.0.0.0 으로 바꿔준다. - $ sudo service mysql restart
그리고 mysql 서버를 재시작해준다.
5. AWS EC2 인스턴스 인바운드 규칙을 추가한다.
이제 mysql에 접근할 수 있도록 포트를 열어주는 포트 포워딩을 해야한다.
AWS EC2 인스턴스를 클릭해서
보안 -> 보안그룹을 클릭한다.
인바운드 규칙 편집 클릭!
이렇게 mysql 포트 컬럼 하나를 추가한다. 사용자 어쩌고 써져있는 부분 클릭해서 anywhere로 바꾸면 외부어디서나 접속하게 열어준 것이다.
6. DataGrip으로 database에 접근한다.
DataGrip에 접속하여
File -> New -> Project 를 클릭해 새로운 프로젝트를 만들어준다.
이름은 원하는대로! 나는 현재 인스타그램 서버를 만들어보는 중이라 instagram으로 하였다.
DataSource -> MySQL 을 선택해준다.
- Name : 원하는대로
- Host : ec2 인스턴스 ip
- Port : 3306 (기본)
- User : 아까 mysql에서 설정했던 유저
- Password : 그에 맞는 비밀번호
- Test Connection : 잘 연결되는지 확인
각자에 맞게 써준다음 OK를 클릭!
이제 만들었던 database 스키마에 들어가야한다.
맨 위 오른쪽에서 관리하고 싶은 database 스키마를 골라준다음
introspect schema 를 클릭해준다.
이렇게 왼쪽에 나타난다면 성공이다!!!!
참고 블로그 : https://luminitworld.tistory.com/82
'settings' 카테고리의 다른 글
Let’s Encrypt사용해서 https 설정하기 & redirection(ubuntu 18.04 기준) (0) | 2023.02.13 |
---|---|
가비아와 EC2 도메인 연결하기 (0) | 2023.02.13 |
ubuntu 18.04 기준 Linux, Nginx, MySQL, PHP (LEMP 스택) 구축하기 (0) | 2023.01.29 |
WinSCP PuTTY를 사용해 AWS EC2 인스턴스 접속하기 (0) | 2023.01.27 |
AWS EC2 우분투 기반 서버 만들고 배포하기 (0) | 2023.01.27 |