2012-11-16 20 views
5

मैं अपनी समस्या की व्याख्या करने की कोशिश करता हूं !!!PHP पीडीओ पीजीपीूल पीजीएसक्यूएल - एसक्यूएलएसटीएटी [एचवाई 000]: सामान्य त्रुटि: 7 सर्वर से कोई कनेक्शन

मैं पीजीओ एक्सटेंशन का उपयोग pgpool-II के माध्यम से PostgreSQL से कनेक्ट करने के लिए करता हूं। यह अपाचे के भीतर ठीक काम करता है, लेकिन मैं इस पीडीओ त्रुटि प्राप्त पीएचपी CLI से (एक ही मशीन पर):

SQLSTATE [HY000]: सामान्य त्रुटि: 7 सर्वर

मैं पहले से ही खोज की है से कोई संबंध नहीं Google और यहां पर, लेकिन ऐसा लगता है कि किसी ने कभी ऐसा करने की कोशिश नहीं की है। क्या किसी को कोई ख़याल है?

संपादित करें:

इस कोड को मैं एक संबंध स्थापित करने के लिए उपयोग है:

include 'manage_db.php'; 
include_once 'properties.php'; 
global $properties; 

$dsn = 'pgsql:dbname=' . $properties['db_pgpool'] . ';host=localhost;port=' . $properties['port_pgpool']; 

try{ 
    $mgmtDb = new ManageDb($dsn, $properties['username_pgpool'], $properties['password_pgpool']); 
} catch (Exception $e) { 
    echo 'PDO - Caught exception: ', $e->getMessage(), "\n"; 
} 

ManageDB अपने ही वर्ग के साथ-साथ डेटाबेस कनेक्शन बनाने कि कुछ उपयोगिता कार्यों को लागू करता है:

class ManageDb { 
     var $db; 

     function ManageDb($dsn, $username, $password){ 
      $this->db = new PDO($dsn, $username, $password); 
      $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     } 

.... 
+0

खैर, यह कह रहा है कि आप सर्वर से कनेक्शन नहीं है। आप कैसे कनेक्ट कर रहे हैं और आप इसे कैसे चेक करते हैं, साझा करने के लिए अच्छी जानकारी होगी। –

+0

pgpoll का उपयोग करते समय, आपको conf फ़ाइल में कनेक्शन सेट करने की आवश्यकता है। क्या आपने pgadmin3 का उपयोग कर अपने postgresql सर्वर तक पहुंचने का प्रयास किया है? यदि यह सफलता है तो मुझे लगता है कि समस्या आपकी conf सेटिंग में है। – Ahmad

उत्तर

3

इसे आजमाएं


config.database.php

<?php 
class DatabaseConfig { 

    const DBNAME = 'dbname'; 
    const HOST  = '123.1.233.123'; 
    const USER  = 'mysuperuser'; 
    const PASSWORD = 'mysupperparrword'; 
    const PORT  = 5432; 
} 
?> 


class.database.php

<?php 

include('config.database.php'); 

class Database { 

    protected static $instance = null; 

    final private function __construct() {} 
    final private function __destruct() { 
     self::$instance = null; 
    } 

    final private function __clone() {} 

    public static function getInstance() { 
     if (self::$instance === null) { 
      try { 
       self::$instance = new PDO(
        'pgsql:host=' . DatabaseConfig::HOST . 
        ';port='  . DatabaseConfig::PORT . 
        ';dbname='  . DatabaseConfig::DBNAME . 
        ';user='  . DatabaseConfig::USER . 
        ';password=' . DatabaseConfig::PASSWORD 
       ); 
       self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
       self::$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); 
      } catch (PDOException $e) { 
       die('Database connection could not be established.'); 
      } 
     } 

     return self::$instance; 
    } 
    public static function __callStatic($method, $args) { 
     return call_user_func_array(array(self::instance(), $method), $args); 
    } 
} 
?>