네트워크 통신

AWS-MYSQL 외부접속 mysqld.cnf

@blackcat 2023. 5. 18. 12:25

aws 인스턴스 서버를 만들면 별도로 서버안에 데이터를 연결할 dmbs 즉,  mysql를 설치해야한다.

설치후에 서버 관리사이트에서 보안그룹을 설정을 확인해야하는데, 이는 서버를 접근할 수있는 내/외부 접근에 대한 접속 설정관리다. http/https/ssh/mysql 등 처럼 각 유형 통신에 따른 필요한 포트를 설정하는 것이다. 

이떄 db와 연결하려면, db와 연결할 계정과 그 계정에 호스트를 맞게 설정해야한다.
db전용이면 db전용의 호스트만 사용하게끔 혹은 어떤 계정은 어느 호스트에나 들어갈수있게 '%'로 설정할 수 있다. 이건 사용자계정이 db에 접속하는 사용자의 설정값이다.

프로젝트에서 db에 접근하려면 서버내에 mysql(DBMS)가 외부접근을 허용할 수 있게 bind-address를 0.0.0.0으로 오픈시켜놔야한다. 혹은 특정 호스트에게만 오픈해 놔야한다. 그래야지 프로젝트 내에서 db접속을 할 수 있고 데이터 교류를 할 수 있다.

이 작업이 되질 않으면 서버를 만들었다 하더라도, 실질적으로 눈으로 보여지는 데이터값을 불러 일으킬 수가 없다.

 


 

MySQL의 bind-address를 0.0.0.0로 변경하는 대안적인 방법

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 명령을 사용하여 MySQL 구성 파일인 mysqld.cnf를 연다

(*인터넷에보면  /etc/mysql/my.cnf를 수정하라는데 mysqld.cnf랑 my.cnf는 다른 파일이다. 그리고 my.cnf를 수정하더라도 mysql 재부팅인안돼 삽질을 계속했다.)

파일을 편집하고 bind-address 항목을 찾고  bind-address 값을 0.0.0.0으로 변경한다.

변경 내용을 저장하려면 Ctrl + O를 누르고, 저장 후 종료하려면 Ctrl + X를 누른다.

변경한 내용을 적용하기 위해 MySQL 서비스를 다시 시작한다.. sudo service mysql restart 명령을 사용한다.

이 방법을 사용해서 bind-address를 0.0.0.0으로 변경하고 MySQL 서비스를 재시작하면 외부에서 MySQL에 접속이 된다.

(*vi 편집보다 nano 편이 훨씬 편하다. 둘의 정확한 차이는 모르지만, vi가 불편하면 nano쓰는걸 추천한다.)