2017-03-09 35 views
0

mysql.data.dllpowershell(v2)を使用して、my MySQLデータベースに接続しています。接続文字列は次のようになります。mysql.data.dll接続タイムアウト

$connStr = "server=" + $MySQLHost + ";port=" + $MySQLPort + ";uid=" + $MySQLUser + ";pwd=" + $MySQLPass + ";database=" + $MySQLDatabase + ";Pooling=FALSE" 
    try 
    { 
     $conn = New-Object MySql.Data.MySqlClient.MySqlConnection 
     $conn.ConnectionString = $connStr 
     $conn.Open() 
    } 

正常に接続しますが、数秒以上かかるクエリを実行するとタイムアウトします。 データベース上で直接クエリを実行すると、(apxの実行に40秒かかりますが)うまくいきますので、問題の原因となっているこの接続に関連するタイムアウトがあると仮定します。 したがって、この接続に60秒間タイムアウトしないように指示する方法はありますか。

+0

それはパワーシェル – IGGt

答えて

1

Python仮想環境とMySQLを接続するのと同様の問題がありました。

私は、MySQLサーバと通信するための自己完結型のPythonドライバが必要でした。

は、いくつかの研究を行なったし、これが見つかりました:

のphp5-mysqlの

良いあなたがしている:私はあなたがmysqlののプラグインを必要とすることを集める http://php.net/manual/en/ref.pdo-mysql.php

をPowerShellを使用して:windowsとlinuxコマンドの両方が動作します

次のコマンドでインストールすることができます必要なもの:

apt-get install php5-mysql 
0

sudo apt-get install php5-mysql 

または管理者としてPowerShellを実行して、使用(右スタートメニューのアイコンの上にクリックしてください)正解かどうかわかりませんが、うまくいきました。

接続文字列の最後にdefault command timeout=180;を追加しました。だから私は今持っている:

$connStr = "server=" + $MySQLHost + ";port=" + $MySQLPort + ";uid=" + $MySQLUser + ";pwd=" + $MySQLPass + ";database=" + $MySQLDatabase + ";Pooling=FALSE; default command timeout=180" 
    try 
    { 
     $conn = New-Object MySql.Data.MySqlClient.MySqlConnection 
     $conn.ConnectionString = $connStr 
     $conn.Open() 
    }