Maison > Article > base de données > Erreur de base de données MySQL : solution contenant trop de connexions
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!