Maison  >  Article  >  interface Web  >  Erreur mysql de connexion Nodejs

Erreur mysql de connexion Nodejs

WBOY
WBOYoriginal
2023-05-25 12:58:081396parcourir

Node.js est un langage de programmation côté serveur efficace, rapide et fiable, qui peut très bien réaliser la mise à jour et le traitement en temps réel des données côté serveur. MySQL est un système de gestion de bases de données relationnelles largement utilisé dans le domaine du stockage de données sur Internet et dans les logiciels d'entreprise. La combinaison de Node.js et MySQL peut réaliser le stockage et la gestion des données côté serveur, mais pendant le processus de développement lui-même, vous pouvez rencontrer certains problèmes. Cet article présentera un problème courant : l'erreur node.js lors de la connexion à MySQL.

1. Performances d'erreur

Lorsque nous utilisons Node.js pour nous connecter à MySQL, nous pouvons rencontrer les performances d'erreur suivantes :

  1. Erreur : connectez ETIMEDOUT
  2. Erreur : connectez ECONNREFUSED
  3. Erreur : ER_ACCESS_DENIED_ERROR
  4. Erreur : Impossible mettre en file d'attente la poignée de main après avoir appelé à quitter

2. Analyse de la cause de l'erreur

  1. Délai d'expiration de la connexion

Erreur : connectez ETIMEDOUT

Cette erreur est généralement causée par un délai d'expiration de la connexion réseau, car notre serveur MySQL peut ne pas être en mesure de répondre aux demandes ou les demandes des utilisateurs sont lentes. Lorsque Node.js se connecte à MySQL, vous devez spécifier le délai d'expiration de la connexion et établir la connexion dans le délai spécifié, sinon une erreur de connexion ETIMEDOUT sera signalée.

  1. Connexion refusée

Erreur : connexion ECONNREFUSED

Cette erreur est généralement causée par un réglage incorrect des paramètres liés à la connexion à MySQL, tels que le nom d'hôte, le nom d'utilisateur, le mot de passe, etc. Cette erreur se produit généralement lors de la connexion au serveur à distance. Cela peut être dû au fait que le serveur a configuré un pare-feu ou spécifié que seule une adresse IP ou un segment de réseau spécifique peut se connecter à MySQL.

  1. Échec de la vérification des autorisations

Erreur : ER_ACCESS_DENIED_ERROR

Cette erreur est généralement causée par une saisie d'un nom d'utilisateur ou d'un mot de passe incorrect, d'autorisations insuffisantes ou si le serveur interdit certaines autorisations. Cette erreur se produira lors de la connexion à MySQL si le nom d'utilisateur ou le mot de passe saisi est incorrect ; cette erreur se produira également lorsque l'utilisateur ne dispose pas des autorisations suffisantes pour accéder à la base de données.

  1. Erreur d'application

Erreur : Impossible de mettre la poignée de main en file d'attente après avoir invoqué quit

Cette erreur est généralement causée par une erreur d'application, peut-être parce que la connexion MySQL a été fermée avant la fermeture de l'application. Dans ce cas, nous devons vérifier soigneusement si les connexions dans le pool de connexions sont correctement fermées ou s'il existe d'autres problèmes.

3. Solutions d'erreur

  1. Délai d'expiration de la connexion

Afin d'éviter les erreurs de délai de connexion, nous devons définir le temps d'attente de vérification et le délai d'expiration de la connexion dans Node.js. En règle générale, nous définissons cette durée entre 5 et 10 secondes. Voici un exemple d'extrait de code pour se connecter à MySQL :

const mysql = require('mysql');

const connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'mot de passe',
base de données : 'mydatabase',
connectTimeout : 10000,
acquireTimeout : 10000
});

connection.connect((err) => {
if (err) throw err;
console.log (« Connecté ! »);
});

  1. Connexion refusée

L'erreur de connexion refusée peut être résolue en définissant le nom d'hôte, le nom d'utilisateur et le mot de passe corrects. Si nous nous connectons à un serveur distant, nous devons nous assurer que l'adresse IP et le numéro de port de la connexion sont corrects et que le serveur n'a pas de pare-feu configuré ou ne restreint pas l'accès à certaines adresses IP ou segments de réseau. Voici un exemple d'extrait de code pour se connecter à MySQL :

const mysql = require('mysql');

const connection = mysql.createConnection({
host : 'remote-server.com',
port : '3306 ',
utilisateur : 'root',
mot de passe : 'password',
base de données : 'mydatabase'
});

connection.connect((err) => {
if (err) throw err;
console. log( 'Connected!');
});

  1. Échec de la vérification des autorisations

Si nous rencontrons une erreur d'échec de la vérification des autorisations lors de la connexion à MySQL, nous devons nous assurer que le nom d'utilisateur et le mot de passe saisis sont corrects et que le l'utilisateur a accès aux autorisations de la base de données. Si nous utilisons l'utilisateur root, nous devons noter que le serveur MySQL peut avoir défini des règles qui se connectent uniquement à un hôte spécifique pour utiliser le compte root.

  1. Erreur d'application

Si nous rencontrons une situation d'erreur d'application lors de la connexion à MySQL, nous devons vérifier si la connexion dans le pool de connexions est fermée et d'autres problèmes possibles. Voici un exemple de code qui peut être utilisé pour fermer correctement le pool de connexions :

const mysql = require('mysql');
const pool = mysql.createPool({
connectionLimit : 10,
host : 'localhost',
utilisateur : 'root',
mot de passe : 'mot de passe',
base de données : 'mabase de données'
});

pool.getConnection((err, connexion) => {
console.log('connecté en tant qu'identifiant', connexion .threadId) ;

connection.query('SELECT * FROM utilisateurs', fonction (erreur, résultats, champs) {

if (error) throw error;

console.log('The solution is: ', results);

// Connection is automatically released when query resolves
connection.release();

});
});

En conclusion, la connexion de Node.js à MySQL peut être une tâche délicate, mais tant que nous pouvons identifier la cause première du problème et essayer de le résoudre, nous pouvons résoudre ces problèmes très rapidement. Lorsque nous rencontrons des problèmes pendant le développement, nous pouvons trouver le problème et le résoudre en déboguant et en testant le code, ce qui peut nous aider à créer des applications plus fiables et plus efficaces.

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
Article précédent:Erreur de tampon dans nodejsArticle suivant:Erreur de tampon dans nodejs