2017-12-08 5 views
0

VPSの別のサーバーにあるmysqlデータベースに接続する際に問題があり、mysqlのlocalhostに接続すると問題ありません。これは私のPHPスクリプトです: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そのホストが(それは私のVPSのIPを指す)fh24-219.cybersales.czmysql.example.comから変更されています。なぜ私は考えていない。私は既にhttpd_can_network_connect_dbhttpd_can_network_connect1に変更しました。私はいくつかの助けに感謝します。 phpmyadminでmysql.example.comに接続できます。ありがとう。

+0

これは、サーバー担当者のITサポートコールの問題によく似ています。あなたはそれらに尋ねてみましたか? – IncredibleHat

+0

@Randall not yet –

答えて

0

$usernameには、PHPスクリプトが実行されるサーバからデータベースに接続する権限がありません。

リモートサーバーから接続する権限を持つユーザーを作成してください。 MySQLサーバで実行:

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

'fh24-219.cybersales.cz'をPHPサーバIPに変更してください。サーバーIPとして'%'と書くと、どこからでもアクセスできます(推奨されません)。

更新日:ユーザーアクセス許可がわからない場合は

持って、例えばのためにSHOW GRANTS;を実行しますPhpMyAdminを実行して、リモートIPが記述されているかどうかを確認します。

+0

助けてくれてありがとうが、新しいユーザーを作成するのに十分な特権を持っていないユーザーが1人しかいない。私のデータベースのホスティングがデータベースへのアクセスを無効にしたと思いますか? –

+0

PhpMyAdminでデータベースに接続し、次のコマンドを実行します:SHOW GRANTS; ユーザーにはどのホストが記載されていますか? – Aurimas

+0

ローカルホストのみが言及されました。あなたの助けてくれてありがとう、私はvpsにデータベースを転送しました。 –

関連する問題