I am trying to work with Node and Mysql but i keep encountering error when trying to connect with the Database.
//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);
});
})
})
And i keep getting the following Error
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: I run same server in localhost,and succesfully connected with phpMyadmin and I did not got that error but When I implement that server in VPS it cannot create connection with phpMyadmin and say connect ETIMEDOUT.
This error occurred due to connect the server with Remote DataBase. If you want to connect your server with remotely database then make sure your remotely database provider have given the access of remote DB otherwise you need to install the mysql in you VPS.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With