sql >> Database teknologi >  >> RDS >> Mysql

Afslutning af inaktive mysql-forbindelser

Manuel oprydning:

Du kan dræbe processid'et.

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 rapportere fejl (eller webserveren, tjek fejllogfilerne)
  • Ret ikke det, der ikke er i stykker - hvis du ikke mangler forbindelser, skal du bare lade dem være.

Automatisk rengøringsservice;)

Eller du konfigurerer din mysql-server ved at indstille en kortere timeout på wait_timeout og 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)

Indstil med:

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

(og også indstillet i din konfigurationsfil, for hvornår din server genstarter)

Men du behandler symptomerne i stedet for den underliggende årsag - hvorfor er forbindelserne åbne? Hvis PHP-scriptet blev færdigt, skulle det så ikke lukke? Sørg for, at din webserver ikke bruger forbindelsespooling...



  1. Sådan fremskyndes masseindsættelse til MS SQL Server ved hjælp af pyodbc

  2. Tilføj et linket server-login i SQL Server (T-SQL-eksempel)

  3. SQL Server 2014:Native backup-kryptering

  4. Hvordan skifter man databaser i postgres?