Erreur: connexion ETIMEDOUT
Je suis en train de travailler avec Nœud et Mysql mais je continue à rencontrer d'erreur lorsque vous essayez de vous connecter avec la Base de données.
//For mysql server
var mysql = require('mysql');
var connection = mysql.createConnection(
{
host: 'example.com',
user: 'abc',
password: '***',
database: 'abcd',
port: 3306,
});
//If there is an error connecting to the database
connection.connect( function(err)
{
if (err)
{
throw err;
}
else
{
console.log('DB connection establish');
}
});
function check_userid(usersId)
{
var que = connection.query(
'select * from table where id = '+usersId, function(err, result, fields){
if(err) throw err;
console.log('Resultset: ', result);
console.log('Length of Resultset: ', result.length);
if(result.length == 0)
{
connection.query('insert into table (id, user_status) values ( "' + usersId + '", "' + 'connected' + '")',
function (err, result)
{
if (err) throw err;
console.log('Updation of table: ',result.insertId);
});
}
else
{
connection.query('update table SET user_status="'+'connected'+'" WHERE id = "' + usersId + '"',
function (err, result)
{
if (err) throw err;
console.log('Updation of Table: ',result.insertId);
});
}
});
}
//For websocket
var webSocketServer = new (require('ws')).Server({port: (process.env.PORT || 5000)}),
webSockets = {} //userID: webSocket
//CONNECT /:userID
//wscat -c ws://localhost:5000/1
webSocketServer.on('connection', function (webSocket)
{
var userID = parseInt(webSocket.upgradeReq.url.substr(1), 10)
webSockets[userID] = webSocket
console.log('connected: ' + userID + ' in ' + Object.getOwnPropertyNames(webSockets))
check_userid(userID);
//Forward Message
//
//Receive Example
//[toUserID, text] [2, "Hello, World!"]
//
//Send Example
//[fromUserID, text] [1, "Hello, World!"]
webSocket.on('message', function(message) {
console.log('received from ' + userID + ': ' + message)
var messageArray = JSON.parse(message)
var toUserWebSocket = webSockets[messageArray[0]]
if (toUserWebSocket) {
console.log('sent to ' + messageArray[0] + ': ' + JSON.stringify(messageArray))
messageArray[0] = userID
toUserWebSocket.send(JSON.stringify(messageArray))
}
})
webSocket.on('close', function () {
delete webSockets[userID]
console.log('deleted: ' + userID)
connection.query('update table SET user_status="'+'disconnected'+'" WHERE id = "' + userID + '"',
function (err, result)
{
if (err) throw err;
console.log('Updation of table: ',result.insertId);
});
})
})
Et je reçois l'Erreur suivante
Error: connect ETIMEDOUT
at errnoException (net.js:904:11)
at Object.afterConnect as oncomplete
--------------------
at Handshake.Sequence (/Users/apple/Desktop/js/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:21)
at new Handshake (/Users/apple/Desktop/js/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12)
at Protocol.handshake (/Users/apple/Desktop/js/node_modules/mysql/lib/protocol/Protocol.js:44:50)
at Connection.connect (/Users/apple/Desktop/js/node_modules/mysql/lib/Connection.js:38:18)
at Object. (/Users/apple/Desktop/js/server.js:13:12)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Description:
J'ai exécuter le même serveur en localhost,et avec succès connecté avec phpMyadmin et je n'ai pas eu cette erreur mais Lorsque je mettre en œuvre ce serveur VPS il ne peut pas créer une connexion avec phpMyadmin et dire connecter ETIMEDOUT.
OriginalL'auteur Waleed Amjad | 2014-06-30
Vous devez vous connecter pour publier un commentaire.
Cette erreur s'est produite en raison pour vous connecter au serveur avec Base de données Distante. Si vous souhaitez vous connecter à votre serveur à distance avec base de données, puis assurez-vous que votre à distance fournisseur de base de données ont donné l'accès à distance DB sinon, vous devez installer mysql en vous VPS.
OriginalL'auteur Waleed Amjad
Vérifier votre configuration du serveur mysql. Si vous êtes à l'exécution de ce code sur le même système que le serveur mysql, puis mysql peut ne pas être configuré pour écouter sur le port TCP 3306 (il peut juste être à l'écoute sur une socket unix).
Si vous êtes plutôt d'essayer de se connecter depuis l'extérieur du système que le serveur mysql est en cours d'exécution, alors non seulement la configuration de mysql ne pas être configuré pour écouter sur le droit d'interface réseau sur le port 3306, mais il pourrait y avoir des règles de pare-feu, vous devez configurer d'abord afin d'obtenir pour le serveur mysql.
OriginalL'auteur mscdex