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 :
2. Analyse de la cause de l'erreur
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.
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.
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.
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
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é ! »);
});
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!');
});
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.
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!