2017-07-22 21 views
0

Synology NASでホストされている構築中のページを作成しています。エラーの取得SQLSTATE [HY000] [2002] NAS Synologyで接続が拒否されました

訪問者は、電子メールを購読して、Webサイトが利用可能になったときに通知を受けることができます。

電子メールをデータベースに追加するデータベースとPHPコードに問題があります。

サーバー名がlocalhostであれば、私は次のエラーを取得する:

SQLSTATE[HY000] [2002] No such file or directory

それは127.0.0.1または127.0.0.1:3306あるとき、私は下のエラーを取得:

SQLSTATE[HY000] [2002] Connection refused

私は見つけられませんでしたまだ、Stackoverflow上のソリューションです。ここで

PHPコード:

<?php 

$servername = "localhost"; 
$username = "id"; 
$password = "password"; 
$dbname  = "dbname"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sql = "INSERT INTO email (email) VALUES ('$email')"; 

    $conn->exec($sql); 
    echo "New record created successfully"; 
} 

catch(PDOException $e) 
{ 
    echo $sql . "<br>" . $e->getMessage(); 
} 
$conn = null; 

は、なぜ私はこのエラーを取得していますか?

答えて

-1

SQLSTATE[HY000] [2002] Connection refused誤りがあることを意味します

  • あなたがそのユーザにデータベースにアクセスするための権利または権限を持っていない、

  • データベースパラメータ(サーバ名〜ホスト名と、ポートパスワード、データベース名)が正しくないか、または

  • データベースにアクセスできないサーバが存在しない場合。オフラインになっている可能性があります。

+0

データベースは私のブラウザでhttp://i.p/phpMyAdminでアクセスできるサーバ上でホストされているので、データベースにアクセスできますか? 「データベースパラメータ」とはどういう意味ですか?どこで私のsynologyでそれを設定できますか?私はまた、すべての特権を持つユーザーを作成します。 –

+0

パラメータによって、私はあなたのデータベース*ユーザ、サーバ名、パスワード*、およびデータベース名*を意味しました。それらは正しいかもしれませんが、(あなたのアプリケーション設定内の)あなたの特定の環境のために定義することはできません。このエラーが発生する可能性があります。 – nyedidikeke

+0

@VâneVâne:PHPフレームワークを使用していますか?はいの場合はどちらですか? – nyedidikeke

0

私は答えを持っている私は私の中国学の魔女にmariaDBをインストールしているため、接続が拒否された3306から3307

0

へのMySQLのデフォルトのポートを変更する私は、同じ問題が持っていた:

SQLSTATE[HY000] [2002] Connection refused 

PHPからSynology NASで実行されているMariaDBデータベースに接続しようとしています。 (私のために)動作しません何

$conn = new PDO("mysql:host=$servername;port=3307;dbname=$dbname", $username, $password); 

:ちょうど

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); 

をユーザー名とパスワード提供することが、うまくいきませんでしたポート番号を指定して、別の場所で見つかったソリューションは、動作しませんでしたどちらか

$conn = new PDO("mysql:host=$servername:3307;dbname=$database", $login, $password); 

Synology NAS上のメインメニューからMariaDB 10のプロパティウィンドウを開くと、ポート名が表示されます。 明らかに、port=3307仕様は何の効果もありませんが、エラーメッセージも表示されません。

関連する問題