sql >> Databasteknik >  >> RDS >> Mysql

Avbryter inaktiva mysql-anslutningar

Manuell rensning:

Du kan DÖDA processid.

mysql> show full processlist;
+---------+------------+-------------------+------+---------+-------+-------+-----------------------+
| Id      | User       | Host              | db   | Command | Time  | State | Info                  |
+---------+------------+-------------------+------+---------+-------+-------+-----------------------+
| 1193777 | TestUser12 | 192.168.1.11:3775 | www  | Sleep   | 25946 |       | NULL                  |
+---------+------------+-------------------+------+---------+-------+-------+-----------------------+

mysql> kill 1193777;

Men:

  • php-applikationen kan rapportera fel (eller webbservern, kolla felloggarna)
  • fixa inte det som inte är trasigt - om du inte har ont om anslutningar, låt dem bara vara.

Automatisk städservice;)

Eller så konfigurerar du din mysql-server genom att ställa in en kortare timeout på wait_timeout och interactive_timeout

mysql> show variables like "%timeout%";
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| connect_timeout          | 5     |
| delayed_insert_timeout   | 300   |
| innodb_lock_wait_timeout | 50    |
| interactive_timeout      | 28800 |
| net_read_timeout         | 30    |
| net_write_timeout        | 60    |
| slave_net_timeout        | 3600  |
| table_lock_wait_timeout  | 50    |
| wait_timeout             | 28800 |
+--------------------------+-------+
9 rows in set (0.00 sec)

Ställ in med:

set global wait_timeout=3;
set global interactive_timeout=3;

(och även ställ in i din konfigurationsfil, för när din server startar om)

Men du behandlar symtomen istället för den bakomliggande orsaken - varför är kopplingarna öppna? Om PHP-skriptet avslutades, borde det inte stängas? Se till att din webbserver inte använder anslutningspoolning...



  1. Det effektivaste sättet att få tabellrader

  2. Ändra en postgres containers serverport i Docker Compose

  3. Mönstermatchning:Roligare när jag var barn

  4. Fråga som ignorerar mellanslagen