2017-04-20 5 views
0

データベースへの接続は非常に壊れやすいので、接続をテストしてからリンクを作成しようとします。私はpg_connectmysql_pinghow-do-i-ping-the-mysql-db-and-reconnect-using-pdoを見つけましたが、MSSQLと何も関係がありません。接続する前にMSSQLデータベースにpingする方法はありますか

データベースに接続する前にデータベースをテストする方法はありますか?

+0

*** "データベースへの接続は非常に脆弱です" ***あなたは何と言うのですか? –

+0

最初の接続が正常に動作しているかどうかチェックするのはなぜですか? – nogad

+0

マシンをpingするだけですか?マシンが稼動しているとは言えますが、必ずしもSQL Serverが稼働しているとは限りません。 SQLが実行されているかどうかをテストするには、SQLへの接続を試行し、接続またはタイムアウトを待つことは、実際には合理的なアプローチです。または、ここで提案されているように、telnetを使用することもできます。https://dba.stackexchange.com/questions/23704/easy-way-to-check-connectivity-to-sql-server-from-client PHPからtelnetを呼び出す方法は次のとおりです。https://www.google.co.uk/search?client=ubuntu&channel=fs&q=call+telnet+from+PHP&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=njP5WPGJAZPW8AfIpK3QCg – ADyson

答えて

0

あなたは非常に少ない数にタイムアウトを設定し、

SELECT 1; 

または

SELECT GETDATE(); 

のようなものを呼び出し、戻って来て、いくつかの結果がある場合は、表示されるかもしれません...

接続が壊れている場合、そのような小さな要求もまた破損するはずです。 壊れやすい場合

壊れを意味するものではありません、あなたは標準のコールを測定し、実行速度を比較するかもしれない...

0

あなたは、サーバーが接続を受け入れるかどうかを確認するために、サーバ+対応ポートにpingを実行しようとすることができ。

$host = '127.0.0.1'; // ip address, could be localhost 
$port = 1433; // your mssql port 
$timeout = 1; //time to wait in seconds for response 

if($fp = fsockopen($host,$port,$errCode,$errStr,$timeout)) 
{ 
    // Server is OK - responding 
} else { 
    // Server not respoded on given port in given time limit 
} 

fclose($fp); 
+0

私はサーバをテストする関数を作成しましたが、データベースはどこかに保存されています。データベースが存在するping ipアドレスに 'fsockopen'を使うことはできません。 –

関連する問題