2015-05-22 15 views
8

kod Spróbuj poniżej, ale powodują wyjątkiem - SQLSTATE [HY000] [335544421] Połączenie odrzucony przez zdalny interfejs:"połączenie odrzucone przez zdalny interfejs" łączącymi Firebird 3 z PDO

try { 
    $dbh = new PDO("firebird:dbname=localhost/3050:empty", "SYSDBA", "masterkey"); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $sth = $dbh->query('SELECT idmspos, idmsqnt, cdmsval from svc$dms'); 
    $sth->setFetchMode(PDO::FETCH_ASSOC); 

    while($row = $sth->fetch()) { 
     echo $row['idmspos']." ".$row['idmsqnt']." ".$row['cdmsval']."<br>"; 
    } 

    $dbh = null; 
} 
catch(PDOException $e) { 
    $dbh = null; 
    echo $e->getMessage(); 
} 

Specyfikacja:

Linux 3.2.0-4-686-pae #1 SMP Debian 3.2.65-1+deb7u1 i686 GNU/Linux 
PHP 5.6 
php5-interbase 
Firebird 3 from official site. Server is worked, can connect to him from local and remote machine. 
+1

Którego 'libfbclient.so' używasz? Ten z Firebirda 3, albo z Firebirda 2.5 lub wcześniejszego? Jeśli używasz tego z wersji 2.5 lub wcześniejszej, musisz skonfigurować Firebird 3, aby akceptował niebezpieczne połączenia (chociaż uważam, że dałoby to inny błąd niż ten w twojej wiadomości). –

+0

@MarkRotteveel Właśnie pobrałem i zainstalowałem serwer Firebird 3, a następnie zainstalowałem pakiet php5-interbase, żadne dodatkowe działanie nie zostało podjęte. Obecnie przeszukiwano wszystkie pliki 'libfbclient.so' i zastępowałem je plikiem z folderu serwera'/opt/firebird/lib'. Błąd jest powtarzany. Gdzie mogę zezwolić na akceptowanie niezabezpieczonych połączeń? Nie znaleziono tego samego parametru w 'firebird.conf'. Żadne inne wersje firebirda nie zostały zainstalowane wcześniej. –

+2

Wierzę, że jest to ustawienie "WireCrypt" (który domyślnie "Wymagane"), ustaw go zamiast "Enabled" lub "Disabled". Jednakże, jeśli już korzystasz z libfbclient.so z Firebird 3, to nie naprawi tego. –

Odpowiedz

8

Znajdź firebird.conf odkomentować (jeśli używasz fbclient 2.x) i zmienić następujące parametry wyłączyć WireCrypt i ustawić wyższy priorytet dla uwierzytelniania starszych:

WireCrypt = Disabled 
AuthServer = Legacy_Auth, Srp, Win_Sspi 
AuthClient = Legacy_Auth, Srp, Win_Sspi 
+0

To jest tylko obejście, jeśli używasz programu fbclient 2.x. Upewnij się, że łączysz plik fbclient 3.x z PHP i będzie działał bez żadnych poprawek. – Marcodor

-1

Trzeba zmienić usługę Firebird następująco:

  1. Instalacja Firebird
  2. szukaj Go Usługi-> Firebird
  3. Kliknij prawym przyciskiem myszy na Firebird-> Ustawienia-> LogOn-> i kleszczy pole posiadające opcję jako „Pozwala usług na współdziałanie z pulpitem”
  4. a następnie kliknij Restart usługi

    Jesteś n ow stanie połączyć się z firebird pomyślnie w przypadku Firebird 2.1.

Powiązane problemy