Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Reversão do MySQL na transação com conexão perdida/desconectada


Quando você está desconectando fisicamente um cliente, você não está enviando uma desconexão normal (o que causaria uma reversão) e o protocolo MySQL não é muito chato, então o servidor nunca sabe que o cliente não está lá. Acho que isso é uma falha no protocolo quando comparado a outros sistemas de banco de dados onde o cliente e o servidor conversam muito mais internamente.

Qualquer maneira. Existem duas variáveis ​​que você pode alterar. Eles basicamente fazem o mesmo, mas para clientes diferentes.

O primeiro é wait_timeout e é usado por clientes de aplicativos como java ou php.

O outro é interactive_timeout e é usado pelo cliente mysql (como em seus testes)

Em ambos os casos, o servidor encerra a conexão após alguns segundos e, ao fazê-lo, reverte todas as transações e libera todos os bloqueios.