ホームページ  >  に質問  >  本文

MySQL で未処理のトランザクションを表示する方法

<p>送信せずにいくつかのクエリを実行しました。その後、アプリケーションが停止されます。 </p> <p>これらのオープンなトランザクションを表示し、送信またはキャンセルするにはどうすればよいですか? </p>
P粉176151589P粉176151589391日前427

全員に返信(2)返信します

  • P粉463824410

    P粉4638244102023-08-28 11:18:36

    この場合、残りのトランザクションはありませんが、@Johan が言ったように、必要に応じて、以下のクエリを使用して InnoDB の現在のトランザクションのリストを表示できます。

    information_schema.innodb_trx\G から *

    を選択します

    ドキュメントより:

    返事
    0
  • P粉726133917

    P粉7261339172023-08-28 09:36:30

    オープンなトランザクションがないと、MySQL は切断時にトランザクションをロールバックします。
    トランザクションをコミットできません (IFAIK)。

    スレッドを表示するには

    を使用します リーリー

    参照: http://dev.mysql.com/doc/refman/5.1/en/thread-information.html

    切断された接続からはトランザクションをコミットできないため、これは役に立ちません。

    接続が中断された場合の動作
    MySQL ドキュメントより: http://dev.mysql.com/doc/refman/5.0/en/mysql-tips.html

    参照: http://dev.mysql.com /doc/refman/5.0/en/auto-reconnect.html

    この問題を診断して解決する方法
    自動再接続を確認します:

    必要に応じて再送信できるように、最後のクエリ (トランザクション) をクライアントに必ず保持してください。
    また、これは危険であるため自動再接続モードを無効にし、代わりに独自の再接続を実装して、いつドロップが発生したかを把握し、そのクエリを再送信できるようにします。

    返事
    0
  • キャンセル返事