MySQL: check timeouts on database

 SHOW VARIABLES LIKE 'wait_timeout';


-- Timeout for interactive connections

SHOW VARIABLES LIKE 'interactive_timeout';


-- Timeout for initial connection attempts

SHOW VARIABLES LIKE 'connect_timeout';


SHOW VARIABLES LIKE '%timeout%';

connect_timeout60
delayed_insert_timeout300
have_statement_timeoutYES
innodb_flush_log_at_timeout1.000000
innodb_lock_wait_timeout50
innodb_rollback_on_timeoutOFF
interactive_timeout28800
lock_wait_timeout31536000
net_read_timeout30
net_write_timeout60
replica_net_timeout30
rpl_stop_replica_timeout31536000
rpl_stop_slave_timeout31536000
slave_net_timeout30
ssl_session_cache_timeout300
thread_pool_idle_timeout60
wait_timeout28800




The most common timeout-related variables are:

  • wait_timeout – Timeout for non-interactive connections (in seconds).
  • interactive_timeout – Timeout for interactive sessions (e.g., MySQL CLI).
  • connect_timeout – Timeout for initial connection attempts.
  • net_read_timeout – Timeout for reading from the network.
  • net_write_timeout – Timeout for writing to the network.

mysql -u root -p -e "SHOW VARIABLES LIKE '%timeout%';"



For lock-related timeouts, such as Lock wait timeout exceeded, you can identify blocking queries using:
SELECT r.trx_id AS waiting_trx_id, r.trx_query AS waiting_query, b.trx_id AS blocking_trx_id, b.trx_query AS blocking_query FROM performance_schema.data_lock_waits w JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_engine_transaction_id JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_engine_transaction_id;
SHOW SESSION VARIABLES LIKE 'wait_timeout'; SHOW GLOBAL VARIABLES LIKE 'wait_timeout';



If you need to adjust timeouts temporarily for troubleshooting:
SET SESSION wait_timeout = 3600; SET GLOBAL connect_timeout = 60;



Remember that global changes reset after a server restart unless updated in my.cnf or my.ini.



Comments

Popular posts from this blog

Postgres: Clean up stopped replication slot

PeopleSoft: Clean Up PUM