[Ubuntu] AWS EC2 MySQL 서버구축 & 외부접속 Unable to connect to localhost 오류해결

Julie Mingu·2023년 5월 18일
0
post-thumbnail

결론: Unable to connect to localhost 뜬다 ? 이건 AWS EC2에서 해결하세요 😀

처음엔 내 💩컴퓨터 & 💩와이파이에 문제가 있다고 생각했다..
온갖 공유기를 해체하면서 문득 내가 오타를 저질렀던거라고도 생각했다..
나도 나를 믿지모태...믿지못하는 지경에 이르던 그 순간..
Unable to connect to localhost 때문에
인스턴스를 한 10개는 만든 것 같다. 결국 해결.👼👼

MySQL 외부접속 해결하는 방법 (2023 ver.)

1. EC2 인스턴스 생성 (서울)

  • 생성시, 방화벽 - 보안그룹생성에 체크하기 (기본체크되어있음)
  • SSH 트래픽 허용 (인스턴스 연결에 도움 이라고 써있음)
  • 인터넷에서 HTTPS 트래픽 허용 체크
  • 인터넷에서 HTTP 트래픽 허용 체크

2. 우분투를 PuTTY로 연결

3. 코드뭉치 (한줄씩 bash에 올리세요)

$ sudo apt-get update
$ sudo apt-get install mysql-server
$ sudo ufw allow out 3306/tcp
$ sudo ufw allow in 3306/tcp
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

제 기준 비밀번호 뭐 바꾸고 이런건 의미없었습니다.
밑에 권한 부여하면서 새로 지정해주면 되더라구요.

bind-address = 127.0.0.1,
mysqlx-bind-address = 127.0.0.1 둘 다 주석처리
둘 다 주석처리 해도 되고, bind-address 만 0.0.0.0으로 변경해도 됨

주석처리/수정방법
Insert + 맨앞에 # 넣기 또는 수정
Esc
:wq! 로 나가기

다 설정했으면 user를 설정하고, 권한을 부여한다음 나오면 된다.

4. mysql 에는 root로 들어갈 것

mysql -u root -p

5. 권한 부여 방법

create user '아이디'@'%' identified by '비번';
grant all privileges on *.* to '아이디'@'%';
flush privileges;

6. mysql 서버 재실행(재부팅)

sudo systemctl start mysql
sudo systemctl restart mysql

7. AWS - EC2 에서 보안그룹 설정

📌 EC2 - 인스턴스 - 인바운드규칙 - 인바운드규칙 편집 (별표 백만개)
그동안 인스턴스를 여러개 만들었던 사람은 네트워크보안- 보안그룹에 들어가면 보안그룹ID가 혼동될 수 있다.
꼭 개별 인스턴스 설정에서 인바운드 규칙 편집하세요!
📌 또한 나의 경우, Anywhere-IPv4 와 IPv6 모두 설정해주었다.

8. MySQL Workbench 에서 Test Connection 연결

https://dev.mysql.com/downloads/workbench/
웬만하면 Installer를 깔아도 괜찮다.
외국 개발자 유튜버들을 보니까 Installer reconfigure 만으로도 많은 오류가 해결되는듯 :)
https://youtu.be/nlefNPcb_Qg

무튼 workbench를 설치했다면,
Database - Manage Connections 이동

Hostname : 퍼블릭 IPv4 주소
Post : 3306 디폴트값
Username : 이전에 생성했던 값 -> Store in Vault 비밀번호 입력하기
Test Connection 실행

profile
(੭˙ ˘ ˙)੭🌱 자란다, 잘한다!

0개의 댓글