Donnerstag, Juni 4, 2020

„Verbindung abgelehnt vom remote-interface“ die Verbindung zu Firebird 3 mit PDO

Versuchen Sie folgenden code, aber Ursache Ausnahme – SQLSTATE[HY000] [335544421] Verbindung abgelehnt vom remote-interface:

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();
}

Specs:

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.
  • Die libfbclient.so verwenden Sie? Der von Firebird 3, oder einer von Firebird 2.5 oder früher? Wenn Sie die one 2.5 oder früher verwenden, müssen Sie konfigurieren Firebird 3 zu akzeptieren unsichere verbindungen (obwohl ich glaube, dass wäre eine andere Fehlermeldung als die, die Sie in Ihrer Nachricht).
  • Ich habe gerade heruntergeladen und installiert-Firebird-3-server, und installieren Sie dann das Paket php5-interbase, eine keine zusätzlichen Maßnahmen ergriffen werden. Derzeit hat die Suche nach allen Dateien libfbclient.so und ersetzen Sie Sie durch eine Datei aus dem server-Ordner /opt/firebird/lib. Der Fehler wiederholt sich. Wo kann ich zulassen, akzeptieren unsichere verbindungen? Keine gleichen gefunden param in firebird.conf. Keine andere Versionen von firebird nicht installiert ist, bevor.
  • Ich glaube, es ist die Einstellung WireCrypt (standardmäßig Required), es Enabled oder Disabled statt. Allerdings, wenn Sie schon mit der libfbclient.also von Firebird 3, dieser ist nicht dabei, es zu beheben.
  • Gefunden Sie diese Zeichenfolge in der firebird.conf. Standardmäßig wurde kommentiert. Entfernen Sie die Kommentarzeichen und ändern zu WireCrypt = Disabled, und entfernen Sie die Kommentarzeichen und ändern AuthServer = Legacy_Auth, Srp, Win_Sspi und AuthClient = Legacy_Auth, Srp, Win_Sspi. Nun funktioniert. Thx.
  • Betrachten Sie beantworten Ihre eigene Frage mit diesen Informationen; es hilft vielleicht auch anderen!
InformationsquelleAutor Vladimir Z. | 2015-05-22

2 Kommentare

  1. 9

    Finden firebird.conf kommentieren Sie (wenn Sie fbclient 2.x) und ändern Sie die folgenden Parameter zu deaktivieren WireCrypt und höhere Priorität für die legacy-Authentifizierung:

    WireCrypt = Disabled
    AuthServer = Legacy_Auth, Srp, Win_Sspi
    AuthClient = Legacy_Auth, Srp, Win_Sspi
    • Dies ist nur ein workaround, wenn Sie fbclient 2.x. Stellen Sie sicher, link fbclient 3.x zu PHP und es funktioniert ohne irgendwelche tweaks.
  2. -2

    Müssen Sie ändern Sie den Firebird-Dienst wie folgt:

    1. Installieren Sie Firebird
    2. Suche Services-> Firebird
    3. Der rechten Maustaste auf Firebird->Eigenschaften-> Anmeldung-> und checkbox ankreuzen, dass die option als „Ermöglicht es, Dienste für die Interaktion mit Desktop“
    4. und dann klicken Sie auf Dienst neu Starten

      Sind Sie nun in der Lage, eine Verbindung mit firebird erfolgreich im Fall von Firebird 2.1.

Kostenlose Online-Tests