본문 바로가기
MySql

MySQL PDO가 포트와 작동하지 않음

by 베이스 공부 2020. 12. 13.
반응형

PDO를 사용하여 외부 데이터베이스에 연결하려고합니다.

$dbh = new PDO('mysql:host=hotsname;port=3309;dbname=dbname', 'root', 'root');

그러나 이것은 내가 가지고있는 특정 서버에서 작동하지 않습니다.

특정 호스트 만 허용 될 수 있다고 생각했지만 mysql 규칙을 확인하고 개인적으로 가지고있는 서버에서이 코드를 사용해 보았고 연결이 작동했습니다.

그래서 나는 코드가 작동하고 그 코드가 내 측에서 차단되지 않으며 방화벽이 포트 3309에 대한 요청을 수락하고 포트 3306의 올바른 서버로 전달하고 있음을 알고 있습니다.

따라서 문제는 한 서버에만 있습니다. 테스트로 포트 3306을 열어 포트를 지정하지 않고 코드를 테스트 할 것이라고 생각했습니다.

$dbh = new PDO('mysql:host=hotsname;dbname=dbname', 'root', 'root');

이것은 곧바로 작동했습니다.

그래서 내 질문은 포트를 추가 할 때 왜 데이터베이스에 연결할 수 없는지입니다. 이 문제가있는 것은이 특정 서버뿐입니다.

시간 내 주셔서 감사합니다.

업데이트

주어진 오류는 단순히 "xxx.xxx.xxx.xxx에서 mysql 서버에 연결할 수 없습니다"입니다.

나는 지금 조금 더 나아졌다. 3306에서 3306을 사용하여 서버로 들어오는 것을 허용하는 방화벽 규칙이 있으면 코드가 작동합니다. 따라서 포트를 지정 했음에도 불구하고이를 무시하고 강제로 3306에서 나가도록하는 것 같습니다.

 

해결 방법

 

문제는 결국 호스트 때문이었습니다. 코드에 지정된 포트에 관계없이 모든 트래픽이 3306에서 강제로 나갔습니다.

 

참조 페이지 https://stackoverflow.com/questions/21046672

 

 

반응형

댓글