XAMPP MySQL 외부 접속 허용 - XAMPP MySQL oebu jeobsog heoyong

XAMPP(MySQL) 외부 접속 허용하기

XAMPP 설치 후 MySQL 데이터베이스는 localhost 만이 접속 가능하게 세팅되어 있다. 외부에서 접속이 가능하게 하려면 “C:\xampp\mysql\bin\my.ini” 파일에서

skip-networking 을 찾아 주석처리한다. - #skip-networking

skip-innodb 을 찾아 주석처리한다. - #skip- innodb

, 리모트 접속을 위해 사용자를 추가하고 root priviledges 를 아래와 같이 설정한다.

사용자 호스트   암호   전체적 권한       User group Grant 실행

root      %        예   ALL PRIVILEGES                     예

아파치서버의 세팅파일

“c:\xampp\apache\conf\extra\httpd-xampp.conf” 파일을 열고,

“<LocationMatch”를 찾아 아래 그림과 같이 바꾼다.

 <LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">

        #Require local

ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var

</LocationMatch>

apache 구버전 참고

# Close XAMPP security section here 

<LocationMatch "^/(?i:(?:security))">

    Order deny,allow

    #Deny from all

    Allow from all

    #Allow from ::1 127.0.0.0/8 

    ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var

</LocationMatch>

# Close XAMPP sites here

<LocationMatch "^/(?i:(?:xampp|licenses|phpmyadmin|webalizer|server-status|server-info))">

    Order deny,allow

    #Deny from all

    Allow from all

    #Allow from ::1 127.0.0.0/8 

    ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var

</LocationMatch>

바꾸고나서 아파치 서버를 재구동한다.

XAMPP의 기본 phpMyAdmin 설정은 localhost에서만 접속이 가능합니다. 보안상의 이유이지만 필요에 의해 개방해야할 경우 이를 수정하는 법을 알아봅니다.

phpMyAdmin 설정

위의 액세스 금지 이미지같이 도메인/phpmyadmin으로 접속하면 접근 권한이 없다는 메세지를 접하게 된다. xampp.conf에서 설정할 수 있다고 힌트를 주고 있는데, 정확한 주소는 xampp/apache/conf/extra/httpd-xampp.conf 에 위치하고 있다.

파일을 열어보면, 최하단에 아래와 같은 부분을 발견할 수 있다.

#
# New XAMPP security concept
#
<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-status|server-info))">
        Require local
	ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

<LocationMatch :^(?i:(?:xampp| .....) 의 행이 영향을 받는 것들을 나열하고 있다. 즉, 위의 나열 목록들에 해당하는 것들은 모두 Require local 의 영향을 받아 localhost에서만 접속이 가능하게 되고, localhost의 접속이 아니라면 ErrorDocument 403을 보여주게 된다.

phpmyadmin 부분을 삭제하면 접속이 가능해진다.

<LocationMatch "^/(?i:(?:xampp|security|licenses|webalizer|server-status|server-info))">

Require local 부분을 주석처리하면 외부에서도 접속이 가능해지나 다른 모든 것들도 해제하게 된다는 걸 유념하자


AWS EC2 인스턴스의 MySQL 서버에 DataGrip으로 외부 접속하기

1. MySQL user 생성

$ sudo mysql -u root -p
mysql> create user 'park_2'@'%' identified by '비밀번호 입력';

*'Username'@'%' *: 해당 사용자는 외부에서 접근가능

'Username'@'localhost' : 해당 사용자는 내부에서만 접근 가능

'Username'@'xxx.xxx.xxx.xxx' : 해당 사용자는 지정한 ip주소로만 접근 가능

1-2. database 생성 및 권한 부여

mysql> create database test
mysql> grant all privileges on test.* to 'lumin'@'%';
mysql> flush privileges;

grant all privileges로 권한을 부여한 뒤

flush privileges로 적용

2. MySQL 외부 접속 설정

MySQL의 설정 파일인 /etc/mysql/mysql.conf.d/mysqld.cnf 를 수정

cd /etc/mysql/mysql.conf.d
sudo vim mysqld.cnf
XAMPP MySQL 외부 접속 허용 - XAMPP MySQL oebu jeobsog heoyong

bind-address 부분을 주석처리 하거나 0.0.0.0으로 변경한다.

변경사항 적용을 위해 재시작

sudo service mysql restart

3. 외부접속을 위한 포트포워딩

AWS EC2 인스턴스(서버)의 인바운드 규칙을 수정

XAMPP MySQL 외부 접속 허용 - XAMPP MySQL oebu jeobsog heoyong

MYSQL 규칙을 추가하고 위치 무관으로 설정

4. DataGrip으로 MySQL 외부접속

빈 프로젝트 생성- Database에서 DataSource로 MySQL 선택

XAMPP MySQL 외부 접속 허용 - XAMPP MySQL oebu jeobsog heoyong

Host에 퍼블릭 IPv4 주소 입력

User에 위에서 설정한 user 입력

Test Connection 성공

*드라이브 최신화

*포트 포워딩 확인

phpMyAdmon 설치

PHPMyAdmin : mysql을 GUI로 관리할 수 있는 무료 소프트웨어 도구

  1. PHPMyAdmin 기본 설치
sudo apt update
sudo apt install phpmyadmin
XAMPP MySQL 외부 접속 허용 - XAMPP MySQL oebu jeobsog heoyong
출처 :&nbsp;https://luminitworld.tistory.com/83?category=975147

Nginx 사용 중이므로 tab를 눌러 넘겨준다.

이후 쭉 Yes 선택하여 설치 진행

2. phpMyAdmin 설정

설치 파일에서 Nginx 문서 루트 디렉터리로 심볼릭 링크 생성

sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

nginx 설정 디렉터리에서 php 설정

sudo vim /etc/nginx/sites-available/default
XAMPP MySQL 외부 접속 허용 - XAMPP MySQL oebu jeobsog heoyong
출처 :&nbsp;https://luminitworld.tistory.com/83?category=975147

Add index.php to the list if you are using PHP 주석 밑에 index.php 를 추가
index 순 = 우선순위

적용을 위해 재시작

sudo service  nginx restart

AWS서버공인ip/phpmyadmin 접속

XAMPP MySQL 외부 접속 허용 - XAMPP MySQL oebu jeobsog heoyong

*실수

phpmyadmin 설치 과정에서 터미널을 강제종료 - dpkg 파일에 오류가 생겼지만 제거(rm, purge, ....)가 안되어서 처음부터 다시 시작