SQLyog (私が使用している GUI) で実行すると数分かかる MySQL SELECT クエリがあります。 PowerShell 経由 (SimplySQL を使用) でまったく同じクエリを実行しようとすると、常に 30 秒で失敗します。 どのタイムアウト変数が制限しているのか、あるいは PS 環境に 30 秒のタイムアウトを持つ他の設定があるのかどうかもわかりません。 これらのタイムアウト値を Linux MySQL サーバーの my.cnf ファイルに設定し、MySQL を再起動しました。しかし成功しませんでした:
リーリーGoogle で MySQL とタイムアウト値を検索しましたが、答えが見つかりませんでした。 そこで私の質問は 2 つあります。オーバーライドできる 30 秒タイムアウトと呼ばれる他の変数は何ですか。または、対話型ツールでのクエリの実行方法と PS セッションでの実行の違いを確認する他の方法はありますか? (注: 常に 30 秒以内に完了するようにクエリを高速化することはできません)
PS を実行するときに必要なのは:
リーリー(最後の行は、「timeout」という名前の MySQL 変数が正常にオーバーライドされたことを示しています。)
P粉6524951942023-09-11 10:54:28
PowerShell はこれを実現するためにバックグラウンドで .Net 接続クラスを使用し、これらのオブジェクトには 接続文字列 が必要です。通常、接続文字列には接続のタイムアウトを含めることができます。正確なタイムアウト設定は、使用する特定のドライバーによって異なります。残念ながら、Connectionstrings.com には十分に文書化されていませんが、例を次に示します。 リーリー
それ以外の場合は、接続オブジェクト自体にタイムアウト プロパティを設定することもできます...ただし、それがどのようなものであるかを正確に知るには、PowerShell 接続コードを調べる必要があります。PowerShell コードがそれを ODBC データ ソースに渡している可能性もあります。接続文字列は
DSN=MyDataSource のようなものです。この場合、データ ソースの構成を確認する必要があります。