SQLSTATE[01002] Adaptive Server-Verbindung fehlgeschlagen (Schweregrad 9)
Habe ich das folgende Skript, um eine Verbindung zu meinem microsoft-azure-server.
<?php
try {
$hostname = "secrets.database.windows.net";
$dbname = "secrets";
$username = "secrets";
$pw = "secrets";
$dbh = new PDO ("dblib:host=$hostname;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
echo "Passed!";
Das script oben geht auf meinem alten server, aber gibt mir folgende Fehlermeldung bei der Ausführung von neuen server.
SQLSTATE[01002] Adaptive Server connection failed (severity 9)
Meinem neuen server-PHP-setup ist wie folgt:
sudo apt-get install -y php5.6-fpm php5.6-ldap php5.6-curl php5.6-cli php5.6-mcrypt php5.6-intl php5.6-json php5.6-pdo-dblib php5.6-mysqlnd php5.6-memcached php5.6-mbstring php5.6-imap php5.6-xml php5.6-sybase
Meine Prüfungen so weit:
1) Beide haben die gleichen öffentlich sichtbare IP-Adresse.
2), Beide haben identische PHP-PDO/ODBC-setup.
$ php -i | grep PDO
DO
PDO support => enabled
PDO drivers => dblib, mysql, odbc
PDO Driver for FreeTDS/Sybase DB-lib => enabled
PDO Driver for MySQL => enabled
PDO_ODBC
PDO Driver for ODBC (unixODBC) => enabled
3) ich bin in der Lage, ping meinen server über telnet von beiden Servern mit:
telnet secrets.database.windows.net 1433
Irgendwelche Vorschläge würden geschätzt.
InformationsquelleAutor hawx | 2016-05-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach einigen weiteren googeln stieß ich auf diese Antwort.
Verbinden, PHP MSSQL via PDO ODBC
Stellte sich heraus, ich brauchte nur ein update meiner /etc/freetds/freetds.conf
Meine änderungen:
Unkommentiert TDS-Protokoll-version und aktualisiert.
Hinzugefügt mssql Beispiele unten.
In Anbetracht dieser, ich würde auch gehen Sie voran und markieren Sie Ihre Antwort als korrekt. Wenn ich gebeten hatte, die Frage mich persönlich, deine Antwort wäre zutreffend.
InformationsquelleAutor hawx
Ich hab das gleiche Problem hier, aber es wird behoben, durch das hinzufügen version von FreeTDS 8.0, um die Verbindung direkt im PHP-code:
InformationsquelleAutor Kannika
In meinem Fall hatte ich einen Tippfehler in
$dbname
ist, korrigieren Sie das Problem gelöst.InformationsquelleAutor Robin Nemeth
In meinem Fall das Passwort des Benutzers neu gestartet, ohne mein wissen.
InformationsquelleAutor grizzb