MySQL Linuxクライアントのタイムアウト/接続を維持する

MySQL Linuxクライアントのタイムアウト/接続を維持する

LinuxのMySQLクライアントコマンドラインでKeepaliveを設定する方法はありますか?

当社のネットワークは最近VLAN設定に移行され、システム部門はファイアウォールを制御できなくなりました。データが通過しない場合(接続および制限されたリソースを追跡する必要がある場合)、30分後にすべての接続を終了するようにファイアウォールにルールを設定することを決定した権限。私はこれを制御できません。

サーバー管理者でありプログラマーとしての私の問題は、これがプログラミング中にバックグラウンドでmysqlコマンドラインクライアントを実行できないことです。クエリを送信しないか、データを送信せずに35分後に試みると、クライアントは接続がなくなったことを検出します。毎回再接続する必要があります。

SSHでは、終日接続を開いたままにするために接続の維持を設定できます。 mysqlコマンドラインクライアントにも同様の設定可能なオプションはありますか? 「Mysql Keepalive」と同様の検索がプログラミング言語のバックエンド接続の結果を返すので、何も見つかりません。

ベストアンサー1

通常のTCP接続維持を設定できます。これを達成するためのカーネル設定があると思います。しかし、その頻度は一般にはるかに低いです(時間ごと)。一つあるTCP接続維持ガイド詳細が入っているようです。

または、SSHを介してMySQL接続を直接トンネリングしてからSSHキープアライブを使用するのはどうですか?

$ ssh -L1234:127.0.0.1:3306 -o ServerAliveInterval=300 user@mysql-server
... (in another terminal)
$ mysql -u user -p -h 127.0.0.1 -P 1234

3番目のオプションは、サーバーのトンネル(OpenVPNなど)を設定してから、接続の維持(および透過的に再接続など)を処理することです。

PS:「私たちの貴重な資源」期限切れの買収確立された30分未満のTCP接続はゴミです。残念なことに - 私は以前に彼らの立場にいたことがあります - いくつかの機器も不便でした。例えば、BCP 142/RFC 5382〜を与える最低限度で2時間4分(ホストがまだ実行中かファイアウォールが確認できない場合のみ)

おすすめ記事