MySQL 외부 접근 허용하기

February 19, 2018    ChatBot(챗봇) MySQL

MySQL 외부 접근 허용하는 방법

외부연결을 허용시키기 위해서는 3가지만 수행해 주면 된다.

  • bind-address 주석하기
  • MySQL에서 허용할 IP 등록하기
  • MySQL 재시작


bind-address 주석하기

sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf


MySQL에서 허용할 IP 등록하기 (코드안에 패스워드에 비밀번호 대입)

원하는 기호에 맞춰 설정해주면 된다.

Case01)

  • 모든 IP 허용하는 방법
  • 오픈소스로 허용하고 싶을 때
INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('%','root',password('패스워드'),'','','');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;


Case02)

  • IP 대역 허용 ( 예: 111.222.xxx.xxx )하는 방법
  • 학교나 기관별로 공유하고 싶을 때
INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('111.222.%','root',password('패스워드'),'','','');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.%';
FLUSH PRIVILEGES;


Case03)

  • 특정 IP 1개 허용 ( 예: 111.222.33.44 )하는 방법때
  • 특정한 사람에게 공유하고 싶을 때
INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('111.222.33.44','root',password('패스워드'),'','','');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.33.44';
FLUSH PRIVILEGES;


  • 원래 상태로 복구시키는 방법
DELETE FROM mysql.user WHERE Host='%' AND User='root';
FLUSH PRIVILEGES;


MySQL 재시작

~$ sudo /etc/init.d/mysqld restart


Reference

https://zetawiki.com/wiki/MySQL_%EC%9B%90%EA%B2%A9%EC%A0%91%EC%86%8D%ED%97%88%EC%9A%A9


DSBA