Problem die Verbindung zu postgresql mit pdo auf localhost (08006)

Ich habe ein test server und der installierten PHP 5.4 (zend Server mit Nginx) und auch postgresql 9.1.

Ich versuche eine Verbindung zu der postgresql-Datenbank mit dem folgenden code:

define('DB_TYPE', 'pgsql');
define('DB_HOST', 'localhost');
define('DB_PORT', 5432);
define('DB_NAME', 'rockprofile');
define('DB_USERNAME', 'rockprofile');
define('DB_PASSWORD', 'PASSWORD');

$dsn = DB_TYPE . ':dbname=' . DB_NAME . ';host=' . DB_HOST . ';port=' . DB_PORT;

try {
   $db = new PDO($dsn, DB_USERNAME, DB_PASSWORD);
} catch (PDOException $e) {
   echo $e->getMessage();
   print_r($e->getTrace());
}

Dies ist jedoch generieren die folgenden:

SQLSTATE[08006] [7] FATAL: Ident authentication failed for user "rockprofile"

Array (
   [0] => Array (
       [file] => /usr/share/nginx/inc/config.php
       [line] => 24
       [function] => __construct
       [class] => PDO 
       [type] => -> [args] => Array (
            [0] => pgsql:dbname=rockprofile;host=localhost;port=5432
            [1] => rockprofile
            [2] => PASSWORD ) )
   [1] => Array ( [file] => /usr/share/nginx/bands/index.php
       [line] => 2
       [args] => Array (
            [0] => /usr/share/nginx/inc/config.php )
            [function] => include ) ) 

Wie Sie sehen können ich bin mit localhost. Ich kenne den dsn richtig ist auch der Benutzername und das Passwort, weil, wenn ich ersetzen Sie localhost durch den lokalen 192 IP funktioniert es. Ich vermute, das ist ein Problem mit der Konfiguration von postgresql und die folgenden ist der aktuelle Inhalt:

local   all             all                                    peer
host    all             all            127.0.0.1/32            ident
host    all             all            ::1/128                 ident
host    all             all             192.168.1.0/24          md5

Suche jemand erschien, um dieses Problem beheben, indem ändern ident Vertrauen auf die config oben, aber das hat nicht geholfen in meinem Fall.

Ist es wahrscheinlich etwas einfacher, ich muss hinzufügen, sondern sucht scheinen fruchtlos sein im moment. Kann mir jemand sagen, wie das zu korrigieren.

*-----BEARBEITEN-----*

Als pro Daniel Vérité Antwort um das Problem zu beheben ident geändert werden, um MD5. Ich persönlich hatte dies zu ändern, sowohl für die IPv4-und IPv6-Einträge.

local   all             all                                    peer
host    all             all            127.0.0.1/32            md5
host    all             all            ::1/128                 md5
host    all             all             192.168.1.0/24          md5
  • ist dieses Windows -, Linux-oder OSX bist du arbeiten? Für windows sollten Sie versuchen, mit 127.0.0.1
  • sorry, sollte erwähnt haben. Dies ist eine linux Maschine mit der minimalen Installation von cent os 6.4. Ich habe versucht mit 127.0.0.1 als gut, aber gleiche Problem.
  • Diese behoben die Fehler, die ich bekam, haben Sie eine Erklärung dafür, warum "localhost" funktionierte nicht in meinem Fall ?
  • Es ist nicht tatsächlich der Verwendung der lokalen Gastgeber, die das Problem verursacht sondern es wurde die Methode zur Authentifizierung. Das Problem wird gelöst, indem die Methode zur Authentifizierung von ident zu md5
InformationsquelleAutor Peter | 2013-07-18
Schreibe einen Kommentar