Position actuelle: Accueil> Derniers articles> Lorsque vous rencontrez la situation où get_connection_stats ne peut pas obtenir de données, quelles sont les solutions efficaces?

Lorsque vous rencontrez la situation où get_connection_stats ne peut pas obtenir de données, quelles sont les solutions efficaces?

M66 2025-06-27

Lorsque vous utilisez PHP pour les opérations de base de données, GET_CONNECTION_STATS est une fonction très utile qui peut aider les développeurs à comprendre l'état de la connexion de la base de données actuelle, y compris l'exécution de la requête, le nombre total de connexions et d'autres informations. Cependant, dans certains cas, nous pouvons rencontrer la situation où get_connection_stats ne peut pas obtenir de données, et nous devons dépanner et résoudre le problème.

Cet article explorera les raisons possibles et certaines solutions efficaces lorsque get_connection_stats ne peut pas obtenir de données.

1. Confirmez si la connexion de la base de données est valide

Avant d'utiliser get_connection_stats , vous devez vous assurer que la connexion à la base de données est normale. Une connexion invalide ou déconnectée peut entraîner la défaillance de la fonction d'obtenir correctement les statistiques de connexion.

Solution:

  • Vérifiez si la connexion de la base de données est réussie et assurez-vous que la connexion de la base de données a été établie avec succès via mysqli_connect ou PDO avant d'appeler get_connection_stats .

  • Utilisez mysqli_ping () ou PDO :: getAttribute (PDO :: att_connection_status) pour confirmer que la connexion de la base de données est active.

 <span><span><span class="hljs-comment">// examiner MySQLi connecter</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$connection</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"connecter失败: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">mysqli_connect_error</span></span><span>());
}
</span></span>

2. Vérifiez s'il y a des statistiques applicables

get_connection_stats dépend des statistiques de connexion fournies par le serveur de base de données. Si le serveur lui-même ne fournit pas de statistiques pertinentes ou si les statistiques ne sont pas activées, les données obtenues peuvent être vides.

Solution:

  • Vérifiez la version de MySQL pour vous assurer que la version actuelle de la base de données prend en charge les statistiques de connexion. Certaines versions MySQL plus anciennes peuvent ne pas avoir cette fonctionnalité.

  • Confirmez si Performance_schema est activé via la configuration de la base de données, car certaines versions MySQL ne peuvent pas fournir des statistiques de connexion détaillées lorsque Performance_schema n'est pas activée.

 <span><span><span class="hljs-comment">-- examiner performance_schema De l&#39;activer</span></span><span>
</span><span><span class="hljs-keyword">SHOW</span></span><span> VARIABLES </span><span><span class="hljs-keyword">LIKE</span></span><span> </span><span><span class="hljs-string">'performance_schema'</span></span><span>;
</span></span>

3. Résoudre les problèmes d'autorisation

Parfois, des autorisations insuffisantes peuvent également conduire à une indisponibilité des statistiques de connexion. L'utilisateur de la base de données PHP doit avoir la permission d'accéder aux statistiques, sinon GET_CONNECTION_STATS peut renvoyer une valeur nul.

Solution:

  • Assurez-vous que l'utilisateur de la base de données a des autorisations suffisantes et peut vérifier les autorisations via les instructions SQL suivantes:

 <span><span><span class="hljs-keyword">SHOW</span></span><span> GRANTS </span><span><span class="hljs-keyword">FOR</span></span><span> </span><span><span class="hljs-string">'your_user'</span></span><span>@</span><span><span class="hljs-string">'your_host'</span></span><span>;
</span></span>
  • Si les autorisations sont insuffisantes, envisagez de donner des autorisations appropriées, en particulier l'accès à Performance_schema et Information_Schema .

 <span><span><span class="hljs-keyword">GRANT</span></span><span> </span><span><span class="hljs-keyword">SHOW</span></span><span> DATABASES, </span><span><span class="hljs-keyword">SHOW</span></span><span> </span><span><span class="hljs-keyword">VIEW</span></span><span> </span><span><span class="hljs-keyword">ON</span></span><span> </span><span><span class="hljs-operator">*</span></span><span>.</span><span><span class="hljs-operator">*</span></span><span> </span><span><span class="hljs-keyword">TO</span></span><span> </span><span><span class="hljs-string">'your_user'</span></span><span>@</span><span><span class="hljs-string">'your_host'</span></span><span>;
</span></span>

4. Assurez-vous que vous utilisez des extensions PHP prises en charge

get_connection_stats est une méthode d'extension mysqli, donc cela ne fonctionnera que si PHP a une extension MySQLI configurée et est connectée à une base de données MySQL. Cette fonction ne peut pas être utilisée si PHP n'installe pas ou ne permet pas les extensions incompatibles telles que PDO_MYSQL.

Solution:

  • Assurez-vous que l'extension MySQLI est activée dans la configuration PHP. Vous pouvez le vérifier par:

 <span><span>php -m | grep mysqli
</span></span>
  • Si vous n'êtes pas activé, installez et activez l'extension mysqli à l'aide de la commande suivante:

 <span><span>sudo apt-get install php-mysqli
sudo service apache2 restart
</span></span>

5. Utilisez des méthodes alternatives pour obtenir des statistiques de connexion

Si get_connection_stats ne peut toujours pas fournir de données ou que l'environnement que vous utilisez ne prend pas en charge la fonction, vous pouvez envisager d'utiliser d'autres méthodes pour obtenir des statistiques de connexion. Par exemple, vous pouvez obtenir manuellement les informations liées à la connexion en interrogeant l'état de l'émission ou une déclaration de statut global de MySQL.

 <span><span><span class="hljs-keyword">SHOW</span></span><span> STATUS </span><span><span class="hljs-keyword">LIKE</span></span><span> </span><span><span class="hljs-string">'Threads_connected'</span></span><span>;
</span></span>

6. Journal d'erreur de dépannage

Si aucune des méthodes ci-dessus ne fonctionne, il est recommandé de visualiser les journaux d'erreur pour MySQL et PHP. Ces journaux peuvent contenir des informations utiles sur l'état de la connexion de la base de données pour nous aider à dépanner davantage.

Solution:

  • Pour afficher le journal d'erreur MySQL, le chemin est généralement /var/log/mysql/error.log ou /var/log/mysqld.log .

  • Vérifiez le journal d'erreur PHP, le chemin peut être /var/log/apache2/error.log ou /var/log/php_errors.log .

Résumer

Lorsque vous utilisez get_connection_stats , les données ne peuvent pas être obtenues sont généralement causées par la connexion de la base de données non valide, les problèmes d'autorisations, la configuration incorrecte ou les problèmes d'extension PHP. Grâce aux méthodes ci-dessus, la fonction d'acquisition de données peut généralement être restaurée efficacement. Dans le même temps, d'autres méthodes alternatives peuvent être prises en compte pour obtenir des informations sur l'état de la connexion pour garantir le fonctionnement stable du système.