[cafe24] mysql 외부 접속 허용하는 방법

프로그래밍/서버2020. 1. 30. 20:10

 

공부를 하다보면 참으로 신기한 것을 배우네요..

 

저는 cafe24에서 웹호스팅을 사용중입니다.

여기서.. php 코드들이 서버에 업로드 되어있으며.. mysql도 사용중입니다.

 

그런데 cafe24에서 제공되는 용량은 aws lightsail에 비해서 적은 편이라..

aws lightsail 서버를 추가로 사용하려고 합니다.

 

그런데 cafe24의 mysql에 사용자 인증 관련된 정보가 있다보니..

aws lightsail에서 cafe24의 mysql과 통신이 필요합니다..

 

처음에는 aws lightsail에서 cafe24 서버로 http request를 보내고..

cafe24 서버에서 이를 전달받으면 php코드로.. mysql에 접속하여.. 특정 값을 다시 response로 보내고.. aws lightsail에선 이 값을 다시 받아와서 parsing 후 사용하려고 했습니다.

 

그런데.. php에서 mysql이 원격 접속을 허용합니다!! 대박이네요..

기본적으로는 mysql의 외부 접근이 막혀 있습니다.

어디 호스팅이냐에 따라 설정 방법이 다르겠지만 cafe24에서는 홈페이지를 통해 설정할 수 있습니다.

 

https://help.cafe24.com/cs/cs_manual_view.php?idx=109&page=1&categoryIdx=0&s_key=&s_value=&man_no=1

위의 간단한 가이드를 참고해주세요.

 

간단하게.. 접속을 허용할 외부 IP만 등록해주면 됩니다.

 

$dbServer = 'xxxxx.com';
$dbUser = 'db_user_name';
$dbPass = 'db_password';
$dbName = 'db_name';

//DSN for MySQL
$dsn="mysql:host={$dbServer};dbname={$dbName};charset=utf8";

try{
    $db = new PDO($dsn, $dbUser, $dbPass);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    if($debug) echo '데이터베이스에 접속했습니다. <br>';
} catch (PDOException $e) {
    if($debug) echo '접속할 수 없습니다. 이유: ' . h($e->getMessage()) . '<br>';
}

그 이후에.. aws lightsail(외부 서버)에서 위와 같은 방식으로.. cafe24서버에 있는 mysql에 원격으로 접속할 수 있습니다.

 

너무 놀랍네요..

 

작성자

Posted by 드리머즈

관련 글

댓글 영역