2012-03-06 3 views
4

PHP 연결 파일로 RDS 인스턴스를 연결하려고합니다. 내 RDS 인스턴스 사용자와 내 엔드 포인트 (RDS 것) URL, 사용자 이름과 암호를 사용하여 로컬 호스트를 대체PHP로 Amazon RDS에 연결

define('DB_SERVER', 'localhost'); 
define('DB_USERNAME', 'User Name'); 
define('DB_PASSWORD', 'Password'); 
define('DB_DATABASE', 'DATABASE'); 

$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error()); 
$database = mysql_select_db(DB_DATABASE) or die(mysql_error()); 

및 통과 및 데이터베이스 제가했습니다 사람 이름 :

는 내 파일에있는 것입니다 인스턴스를 만들 때 설정됩니다. 그러나 그것은 효과가없는 것처럼 보입니다.

내가해야 할 일이 있습니까? 그렇지 않습니다. 그렇지 않으면 작동해야합니까?

+0

아마존 RDS는 MySQL과 Oracle Database를 모두 지원하기 때문에 MySQL 데이터베이스가 맞습니까? –

+0

그리고 도움이 될만한 정보가 필요하다고 생각합니다. –

+0

RDS에 들어오는 연결을 수락하기 위해 3306 포트를 열 수 있습니다. – cyberrspiritt

답변

8

몇 가지 아이디어 : 인스턴스의 실제 IP를 사용

  • 시도는, 그것은 작동합니다.
  • DB 인스턴스에 대한 액세스 권한을 부여 했습니까?
  • 당신은 당신은 항상 호스트에 대한 엔드 포인트를 사용하여 적절하게 설정하여 RDS 인스턴스
12

RDS 인스턴스가 고정 IP 주소가 그들에 부착 된 권한이없는 Get Started with Amazon RDS에보고를 할 수 있습니다. 예를 들어 :

database1.jlsdfjhgsdf.us-east-1.rds.amazonaws.com

루트 데이터베이스 계정이 아닌 다른 이름으로 인스턴스에 연결하는 경우, 당신은 부여해야합니다 사용자 권한.

보안 그룹 설정을 확인하십시오. Amazon의 다른 EC2 인스턴스에서 연결하는 경우 해당 보안 그룹을 연결해야합니다. 외부 AWS에서 연결하려는 경우 액세스하려는 IP 주소를 허용 목록에 추가해야합니다.

+2

[RDS & PHP] (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP.rds.html) – Jon

1

최근에 나는 이것에 많은 문제가 있었지만 해결할 수있었습니다. 내 보안 그룹 (RDS 및 EC2 용)이 서로 허용하고 있음을 확인했습니다. 터미널에서 내 스크립트를 실행하고 터미널에서도 데이터베이스에 연결할 수 있었지만 스크립트를 실행하여 브라우저에서 MySQL에 연결할 수는 없었습니다. 일단 mysql 서버를 설치하지 않았 더라면 일단 설치하고 httpd와 mysqld를 재시작하면 매력적이었다.

이 기사는 mysql-server를 설치하고 서비스가 시작/재시작하게 된 원인입니다. 희망이 도움이됩니다! - http://www.rndmr.com/amazon-aws-ec2-easy-web-serverset-up-guide-with-a-mac-and-coda-2-256/

0

node-mysql을 사용하여 DB 인스턴스에 연결하려고했습니다. RDS가 ​​제공 한 엔드 포인트가 DNS 조회를 수행함을 발견했습니다. 그걸 따라하고 URL을 그 URL로 바 꾸었습니다. 그때까지는 명령 행을 통해서만 mysql에 연결할 수 있었다. 조회 후 결과 엔드 포인트로 변경했을 때 node-mysql이 마침내 연결할 수있었습니다.

4

PHP를 사용하는 EC2 Apache 서버를 RDS MySQL 인스턴스에 연결하는 동안 비슷한 문제가 발생했습니다. 이상하게도 CLI를 통해 연결을 설정할 수 있습니다 - MySQL 실행 상태에서 어떤 사용자가 로그인했는지 알려주고 포트, 서버 이름 등을 알려줍니다. 밖으로 켜지고 일부 AMI 이미지가 SELinux를 집행 -이 신사 (http://www.filonov.com/2009/08/07/sqlstatehy000-2003-cant-connect-to-mysql-server-on-xxx-xxx-xxx-xxx-13/)

다른 점으로 지적 네트워크 요청을 보낼 어차피 아파치 서버를 의미 :

  • 확실 인바운드 포트가 당신의 RDS DB 설정되어 있는지 확인

    MySQL의에서
  • 는 항상 RDS IP로 연결하는 엔드 포인트 문자열을 사용 localhost에 반대 호스트가 '%'로 설정되어 있는지 확인 변경
1

Click here on the Menu (orange).

들어오는 모든 연결을 허용합니다.

+0

이것은 엄청난 보안 위험입니다. 원격 연결은 화이트리스트 IP 주소에 고정되어야합니다. – Steven

0

또한 http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html에서 자습서를 수행 할 때 ec2 (Apache + PHP 서버)와 RDS (MySQL 서버)간에 연결 문제가 발생했습니다.

가이드 라인이 작은 따옴표를 사용하는 동안 연결 값을 지정할 때 큰 따옴표를 사용하여 해결했습니다.

define('DB_SERVER', "localhost"); 
define('DB_USERNAME', "User Name"); 
define('DB_PASSWORD', "Password"); 
define('DB_DATABASE', "DATABASE"); 
관련 문제