Maison  >  Article  >  base de données  >  Erreur de base de données MySQL : solution contenant trop de connexions

Erreur de base de données MySQL : solution contenant trop de connexions

黄舟
黄舟original
2017-09-11 11:29:222773parcourir

Ce type d'erreur est évidemment dû à l'oubli de mysql_close après mysql_connect ;
Lorsqu'un grand nombre de connexions sont établies, une erreur Trop de connexions se produit. Le nombre par défaut de connexions mysql est de 100. Dans quelles circonstances cela se produit-il. une erreur s'est produite ?
Après mysql_connect normal, appelez mysql_close() pour fermer la connexion
Mais lorsqu'il y a une erreur de connexion, lorsque mysql_real_query() se termine avec une erreur, vous pouvez oublier mysql_close();
Vous devez donc déterminer si avant que le programme ne renvoie close(), le moyen le plus sûr est de n'avoir qu'une seule sortie lors de l'écriture d'une fonction !
Vous pouvez également augmenter le nombre de connexions autorisées en modifiant le fichier de configuration mysql !
Parfois, votre serveur rencontre souvent des erreurs comme celle-ci :
Le message d'erreur est le suivant :

Can not connect to MySQL server
Error: Too many connections
Errno.: 1040
Similar error report has beed dispatched to administrator before.

D'après la documentation officielle, nous savons que le numéro de connexion par défaut de mysql compilé et installé sur Linux est de 100
Document :

http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html

Le responsable de MySQL nous dit que nous devons modifier la valeur de max_connections, alors comment la modifier ? Il existe deux méthodes
1. Modifier le fichier de configuration
Modifier le fichier /etc/my.cnf et ajouter max_connections=N dans [mysqld]. Si vous n'avez pas ce fichier, veuillez compiler le code source du support. - Copiez le fichier *.cnf dont vous avez besoin dans le dossier fichiers vers /etc/my.cnf. J'utilise my-medium.cnf, configuration de serveur moyenne. Par exemple, le contenu de mon [mysqld] est le suivant

[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 160M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
max_connections=1000

Comme je ne connais pas très bien mysql, de nombreux paramètres n'ont pas été modifiés. Ha ha. .
2. Les utilisateurs qui n'utilisent pas le script mysqld pour démarrer automatiquement.
Modifiez le fichier $MYSQL_HOME/bin/mysqld_safe
Par exemple :

/usr/local/mysql/bin/mysqld_safe这个文件
grep -n ‘max_connection’ $MYSQL_HOME/bin/mysqld_safe

Modifiez la valeur du paramètre max_connections du numéro de ligne correspondant

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn