我有以下腳本來連接到我的Microsoft Azure服務器。SQLSTATE [01002] Adaptive Server連接失敗(嚴重性9)
<?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!";
上面的腳本傳遞給我的舊服務器,但從新服務器執行時給我以下錯誤消息。
SQLSTATE[01002] Adaptive Server connection failed (severity 9)
我的新的服務器的PHP設置如下:
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
我檢查迄今:
1)兩者有相同的面向公衆的IP地址。
2)兩者都具有相同的PHP PDO/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)我能夠使用兩個服務器ping通我使用telnet服務器:
telnet secrets.database.windows.net 1433
任何建議,將不勝感激。
我有相同的問題。在你提供的鏈接中的答案肯定得到了幫助。我唯一擔心的是tds版本8.0實際上回退到tds版本7.1,如http://www.freetds.org/userguide/choosingtdsprotocol.htm中所述,但它仍然比我使用7.2時更穩定,這會使我自適應服務器連接 –
考慮到這一點,我還會繼續並將您的答案標記爲正確。如果我親自問過這個問題,你的答案將適用。 –