컴퓨터관련

mysql -h 호스트이름 -P 포트번호 -u 사용자이름 -p패스워드 DB이름...펌

맘편한넘 2010. 11. 7. 10:24

mysql 외부 접속 질문 드릴께요 내공20

fbdudrbek
2009.11.04 20:12
답변
2
조회
2,060

레드햇 엔터프라이즈와 php,mysql을 연동하여 페이지를 만드는데요

 

지금 레드햇 서버가 2개 인데

 

디비는 한 서버에만 있습니다

 

그리고 포트는 3306으로 열려있고요

 

telnet으로 확인 하였고요

 

그런데 디비가 없는 서버에서 3306포트로 접속이 되질 않습니다..

 

다른데서도 마찬가지고요

 

이거 왜이런지 좀 알려주세요

 

계정은 %를 주어 어디서나 접속하도록 하였습니다.

 

그리고 mysql connect함수를 사용하는데

 

그 함수에 반응이 없는데 php가 잘못된건지

 

포트가 잘못된건지 확실히 모르겠습니다.

 

그리고 my.cnf는 제가 설정 하진 않았지만 bind로 적힌 곳이 없어서

 

수정하진 않았습니다

 

그리고 mysql이 설치되지 않은 곳에서 php를 사용해서 mysql을 연동하는데

 

connect에서 host를 빼먹고 해도 에러가 나지 않습니다.

 

디비에 설치된 3306포트가 잘못된건지

 

아니면 디비에 설치 되지 않은 서버가 잘못된건지 궁금합니다.

 

빠른 답변 부탁드립니다.

질문자 채택된 경우, 추가 답변 등록이 불가합니다.

질문자 채택

re: mysql 외부 접속 질문 드릴께요

kyn810410
답변채택률 85.8%
2009.11.05 15:49

질문자 인사

궁금한 점이 시원하게 해결되었어요!

 질문내용만으로는 정확하게 문제점을 짚어드리는데 문제가 있는것이

phpinfo() 를 확인할수가 없는것이 가장 큰이유겠으며

서버설정에 관련된 정보가 없기때문입니다..

 

따라서 추측성답변을 드리고자 합니다..

 

우선 외부에서 mysql 로 접속하기 위해서는 접속하고자 하는 SQL 계정을 생성시에 계정@localhost
계정@'%' 혹은 계정@'아이피' 로 만들어졌어야 합니다..

위 질문글을 보아하니 우선 계정문제는 아닌것으로 보입니다..

그렇다면 A서버에 SQL이 설치되어있다고 가정하면 B서버의 로컬에서

mysql -h A서버주소 -u 아이디 -p비밀번호 -P 포트번호

로 원격접속을 해보도록 합니다..

 

접속이 될경우에는 Mysql 서버자체에는 문제가 없는겁니다..

그렇지 않고 오류문구를 나타내며 종료되는경우에는 해당 오류문구를 같이 올려 질문을 다시 하시길 권합니다.

 

두번째 추측성으로는

SQL서버내에 방화벽이 있지 않은지 확인해봐야 됩니다.

방화벽이 존재하고 있을경우 외부접근을 차단하고 있을지도 모릅니다..

기본적으로

쉘에서 setup 이라는 명령을 root 권한으로 주게 되면 메뉴가 뜨게 되는데

거기서 firewall 컨피그레이션 메뉴를 통하여 단계조정을 할수 있으며

 

iptables 를 사용하시는경우 iptables 를 통하여 해당 포트번호를 열어주셔야 됩니다..

그외 방화벽툴을 사용하시는경우라면 해당 툴의 메뉴얼에 따라 포트번호를 열어주셔야 외부에서

접근이 될수 있겠습니다..

 

 

마지막으로

사설망에 설치된 경우 외부에서 접속은 불가능합니다..

어떤경우인지 몰라 적어본겁니다..

 

그리고

php에서 아무 오류를 출력하지 않는것은 php.ini 설정에서 에러내용을 디스플레이하는 설정부분이 있습니다..

이곳에 설정이 꺼져있거나 다르게 변경되어있을수 있어서 그럴수 있습니다..

또는, SQL시스템자체에서 출력하는 오류인경우 간혹 php에서는 출력하지 않고 멍때리는경우도 있습니다.

 

따라서 위 두가지부분을 체크해보시면 답을 찾으실수 있을것 같습니다..