La connexion à la base de données MySQL a échoué, erreur : ERREUR 1040 (HY000) : Trop de connexions

La connexion à la base de données MySQL a échoué, erreur : ERREUR 1040 (HY000) : Trop de connexions

Description du problème:

"ERREUR 1040 (HY000) : Trop de connexions" apparaît soudainement lors de la connexion à MySQL. Au sens littéral, il devrait y avoir trop de terminaux dans la base de données. Voici une solution au problème en modifiant le fichier de configuration mysql.

Analyse des causes :

Le nombre par défaut de connexions MySQL est 151

Solution:

Configuration temporaire

Si le nombre maximum de connexions apparaît dans la base de données de l'environnement de production, il est recommandé d'utiliser une configuration temporaire, puis de modifier le fichier de configuration et d'attendre le prochain redémarrage.
Lorsque vous ne parvenez pas à vous connecter à la base de données, arrêtez d'abord l'application connectée à l'environnement de production. base de données et attendez quelques minutes pour accéder à nouveau à la base de données.
1. Afficher le nombre actuel de connexions à la base de données.

mysql> show variables like 'max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.00 sec)

2. Modifiez le nombre de connexions à la base de données (remarque : redémarrez pour restaurer les paramètres par défaut)

mysql> set GLOBAL max_connections=500;
Query OK, 0 rows affected (0.00 sec)

3. Vérifiez le nombre maximum de connexions modifié

mysql> show variables like 'max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 500   |
+-----------------+-------+
1 row in set (0.00 sec)

Configuration permanente

1. Ouvrez le fichier de configuration mysql my.cnf

[mysqld]
max_connections = 500

Recherchez le champ max_connections, modifiez le nombre maximum de connexions à
plus de 500, terminez la modification et redémarrez le serveur ! !

Mysql vérifie le nombre de connexions (nombre total de connexions, nombre de connexions actives, nombre maximum de connexions simultanées)

mysql> show status like 'Threads%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_cached    | 0     |
| Threads_connected | 1     |
| Threads_created   | 1     |
| Threads_running   | 2     |
+-------------------+-------+
4 rows in set (0.01 sec)

Threads_connected : Cette valeur fait référence au nombre de connexions ouvertes.

Threads_running : Cette valeur fait référence au nombre de connexions activées. Cette valeur est généralement bien inférieure à la valeur connectée.

Threads_connected a le même résultat que show processlist, indiquant le nombre actuel de connexions. Pour être précis, Threads_running représente le nombre actuel de sessions simultanées.

Le nombre de threads du serveur MySQL doit se situer dans une plage raisonnable pour garantir le bon fonctionnement du serveur MySQL. Threads_created indique le nombre de threads créés. En affichant Threads_created, vous pouvez voir l'état du processus du serveur MySQL.

mysql> show global status like 'Thread%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_cached    | 0     |
| Threads_connected | 1     |
| Threads_created   | 1     |
| Threads_running   | 2     |
+-------------------+-------+
4 rows in set (0.00 sec)

Si nous définissons thread_cache_size dans le fichier de configuration du serveur MySQL, lorsque le client se déconnecte, le thread du serveur traitant ce client sera mis en cache pour répondre au client suivant au lieu d'être détruit (à condition que le nombre de caches n'ait pas atteint la limite supérieure).

Threads_created indique le nombre de threads créés. Si la valeur de Threads_created s'avère trop grande, cela indique que le serveur MySQL a créé des threads, ce qui est également relativement gourmand en ressources. Vous pouvez augmenter de manière appropriée la valeur thread_cache_size dans le fichier de configuration. et interrogez la valeur du serveur thread_cache_size :

mysql> show variables like 'thread_cache_size';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| thread_cache_size | 100    |
+-------------------+-------+
1 row in set (0.01 sec)

Commande : show processlist ;
s’il s’agit d’un compte root, vous pouvez voir les connexions actuelles de tous les utilisateurs. S'il s'agit d'un autre compte ordinaire, vous ne pouvez voir que les connexions que vous occupez.
La commande show processlist répertorie uniquement les 100 premiers éléments. Si vous souhaitez tous les lister, veuillez utiliser show full processlist ;

mysql> show processlist;
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
| Id | User            | Host      | db   | Command | Time | State                  | Info             |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
|  5 | event_scheduler | localhost | NULL | Daemon  | 2405 | Waiting on empty queue | NULL             |
|  8 | root            | localhost | NULL | Query   |    0 | init                   | show processlist |
+----+-----------------+-----------+------+---------+------+------------------------+------------------+
2 rows in set (0.00 sec)

Commande : afficher l’état ;

mysql>show status like '%变量名%';

Les noms de variables sont les suivants :
Aborted_clients Le nombre de connexions qui ont été abandonnées parce que le client n'a pas fermé la connexion correctement et est décédé.
Aborted_connects Le nombre de tentatives de connexion au serveur MySQL qui ont échoué.
Connexions Nombre de tentatives de connexion au serveur MySQL.
Created_tmp_tables Nombre de tables temporaires implicites qui ont été créées lors de l'exécution de l'instruction.
Delayed_insert_threads Nombre de threads de processeur d'insertion retardée utilisés.
Delayed_writes Le nombre de lignes écrites avec INSERT DELAYED.
Delayed_errors Le nombre de lignes écrites avec INSERT DELAYED qui comportaient des erreurs (valeurs de clé en double possibles).
Flush_commands Le nombre de fois où les commandes FLUSH sont exécutées.
Handler_delete Le nombre de fois qu'il a été demandé de supprimer une ligne d'une table.
Handler_read_first demande le nombre de fois pour lire la première ligne du tableau.
Handler_read_key demande un certain nombre de lignes à lire en fonction de la clé.
Handler_read_next Le nombre de fois demandé pour lire une ligne basée sur une clé.
Handler_read_rnd demande le nombre de fois pour lire une ligne en fonction d'une position fixe.
Handler_update Le nombre de fois où une ligne de la table doit être mise à jour.
Handler_write Le nombre de fois qu’il a été demandé d’insérer une ligne dans la table.
Key_blocks_used Nombre de blocs utilisés pour le cache de clés.
Key_read_requests Le nombre de requêtes pour lire une valeur de clé à partir du cache.
Key_reads Nombre de fois qu'une valeur de clé est physiquement lue à partir du disque.
Key_write_requests Le nombre de fois qu'un bloc de mot-clé doit être écrit dans le cache.
Key_writes Nombre de fois qu'un bloc clé-valeur est physiquement écrit sur le disque.
Max_used_connections Nombre maximum de connexions utilisées simultanément.
Not_flushed_key_blocks Blocs de clés qui ont été modifiés dans le cache de clés mais qui n'ont pas encore été vidés sur le disque.
Not_flushed_delayed_rows Le nombre de lignes en attente d'écriture dans la file d'attente INSERT DELAY.
Open_tables Nombre de tables ouvertes.
Open_files Nombre de fichiers ouverts.
Open_streams Le nombre de flux ouverts (principalement utilisés pour la journalisation)
Opened_tables Le nombre de tables qui ont été ouvertes.
Questions Le nombre de requêtes envoyées au serveur.
Slow_queries Le nombre de requêtes qui prennent plus de temps que long_query_time.
Threads_connected Le nombre de connexions actuellement ouvertes.
Threads_running Le nombre de threads qui ne sont pas en veille.
Temps de disponibilité Combien de temps le serveur a fonctionné, en secondes.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_46010834/article/details/130102297
conseillé
Classement