2017-12-08 20 views
0

내 VPS에서 다른 서버의 mysql 데이터베이스에 연결하는 중 문제가 있습니다. 로컬 호스트에 연결하면 mysql이 정상적으로 작동합니다. 나는이 오류가 무엇입니까PHP - 원격 mysql 데이터베이스에 연결할 수 없습니다.

<?php 
$servername = "mysql.example.com"; 
$username = "username"; 
$password = "password"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=database", $username, $password); 
    // set the PDO error mode to exception 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    echo "Connected successfully"; 
    } 
catch(PDOException $e) 
    { 
    echo "Connection failed: " . $e->getMessage(); 
    } 

: SQLSTATE[HY000] [1045] Access denied for user 'username'@'fh24-219.cybersales.cz' (using password: YES)

문제는 propably입니다 호스트가 fh24-219.cybersales.czmysql.example.com 변경을 (내 VPS의 IP를 가리키는)이 내 PHP 스크립트입니다. 나는 이유를 모른다. 이미 httpd_can_network_connect_dbhttpd_can_network_connect1으로 변경했습니다. 나는 약간의 도움에 감사 할 것입니다. phpmyadmin을 사용하여 mysql.example.com에 연결할 수 있습니다. 감사.

+0

이것은 서버 사용자들과 IT 지원 호출 문제가 더 비슷하게 들립니다. 그들에게 물어보기를 시도 했습니까? – IncredibleHat

+0

@Randall 아직 아니요 –

답변

0

가능한 경우 $username에는 PHP 스크립트가 실행되는 서버에서 데이터베이스에 연결할 수있는 권한이 없습니다.

원격 서버에서 연결할 수있는 권한을 가진 사용자를 만들어보십시오. MySQL 서버에서 실행 : PHP 서버 IP에

CREATE USER 'testuser'@'fh24-219.cybersales.cz' IDENTIFIED BY 'mypass'; 

변경 'fh24-219.cybersales.cz'을. 서버 IP로 '%'을 쓰면 어느 곳에서나 액세스 할 수 있습니다 (권장하지 않음).

업데이트 : 당신이 사용자 권한을 모르는 경우

이, 예를 들어, 대한에 SHOW GRANTS;을 실행 원격 IP가 언급되었는지 PhpMyAdmin.

+0

도움 주셔서 감사합니다.하지만 새로운 사용자를 생성 할 수있는 권한이없는 한 명의 사용자 만 액세스 할 수 있습니다. 내 데이터베이스 호스팅이 내 데이터베이스에 대한 액세스를 비활성화했다고 생각합니까? –

+0

PhpMyAdmin으로 데이터베이스에 연결하고 다음을 실행합니다 : SHOW GRANTS; 사용자를 위해 언급 된 호스트는 무엇입니까? – Aurimas

+0

localhost 만 언급되었습니다. 귀하의 도움에 감사드립니다, 나는 내 vps 데이터베이스를 전송했습니다. –