SQLSTATE[01002] Adaptatif Serveur de connexion a échoué (la gravité 9)
J'ai le script suivant pour connecter à mon compte microsoft azure serveur.
<?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!";
Le script ci-dessus passe sur mon ancien serveur, mais il me donne le message d'erreur suivant lors de l'exécution du nouveau serveur.
SQLSTATE[01002] Adaptive Server connection failed (severity 9)
Mon nouveau serveur de configuration de PHP est comme suit:
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
Mes chèques jusqu'à présent:
1) les Deux ont le même public en face de l'adresse IP.
2) les Deux sont identiques, PHP PDO/installation ODBC.
$ 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) je suis capable de ping mon serveur à l'aide de telnet à partir des deux serveurs à l'aide de:
telnet secrets.database.windows.net 1433
Toutes les suggestions seraient appréciées.
OriginalL'auteur hawx | 2016-05-13
Vous devez vous connecter pour publier un commentaire.
Après quelques recherches sur google je suis tombé sur cette réponse.
Connecter PHP pour MYSQL via PDO ODBC
S'est avéré j'ai juste besoin de mettre à jour mon /etc/freetds/freetds.conf
Mes modifications:
Décommenté protocole TDS version et mise à jour.
Ajouté mssql exemples ci-dessous.
Considérant cela, je voudrais aussi aller de l'avant et de marquer votre réponse comme correcte. Si j'avais posé la question moi-même personnellement, votre réponse serait applicable.
OriginalL'auteur hawx
J'ai eu le même problème ici, mais il est fixé par l'ajout de la version de FreeTDS 8.0 pour la connexion directement dans le code PHP:
OriginalL'auteur Kannika
Dans mon cas, j'ai eu une faute de frappe dans
$dbname
, la correction qu'il a résolu le problème.OriginalL'auteur Robin Nemeth
Dans mon cas, l'utilisateur mot de passe a été réinitialisé à mon insu.
OriginalL'auteur grizzb