sql node.js error 10061 - mysql

I am trying to create my first database with node.js but I cant't connect to the server.It gives me error 1061.I am absolutely new in creating databases and I have no idea where is my mistake.Can someone help me?
Thank you!
Here is my code:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "mydb"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
con.query("SELECT * FROM customers", function (err, result, fields) {
if (err) throw err;
console.log(result);
});
});
const http = require('http');
var qs = require('querystring');
var url = require('url');
const server = http.createServer();
server.on('request', (request, response) => {
var url_parts = url.parse(request.url, true);
var query = url_parts.query;
console.log(query);
var body = '';
response.setHeader("Access-Control-Allow-Origin", "*");
request.on('data', (chunk) => {
body += chunk;
}).on('end', () => {
var post = qs.parse(body);
console.log(post);
if(query.command == "register") {
con.query("INSERT INTO customers (name, email, password)
VALUES(?,?,?)", [post.name, post.email, post.password], function (err, result, fields) {
if (err) throw err;
console.log(result);
});
}
response.statusCode = 200;
response.end();
});
});
server.listen(8080);
Here is the Console output:
C:\Users\HP>node server.js
C:\Users\HP\server.js:11
if (err) throw err;
^
Error: connect ECONNREFUSED 127.0.0.1:3306
at Object._errnoException (util.js:1031:13)
at _exceptionWithHostPort (util.js:1052:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1195:14)
--------------------
at Protocol._enqueue (C:\Users\HP\node_modules\mysql\lib\protocol\Protocol.js:145:48)
at Protocol.handshake (C:\Users\HP\node_modules\mysql\lib\protocol\Protocol.js:52:23)
at Connection.connect (C:\Users\HP\node_modules\mysql\lib\Connection.js:130:18)
at Object.<anonymous> (C:\Users\HP\server.js:10:5)
at Module._compile (module.js:641:30)
at Object.Module._extensions..js (module.js:652:10)
at Module.load (module.js:560:32)
at tryModuleLoad (module.js:503:12)
at Function.Module._load (module.js:495:3)
at Function.Module.runMain (module.js:682:10)

This error means that node.js can't connect to your MySQL server.
Most likely your MySQL server not started at all.

Related

Error on second q1wery to Mysql Database

When I send the first request after starting the server, it's okay.
But after updating the page (re-query), you receive an error:
app.get('/images', function(req, res, next) {
if (connection.state === 'disconnected'){
connection.connect();}
else {
}
var DATABASE='nodejsImage';
var results;
connection.query('use ' + DATABASE);
connection.query('SELECT `id`, `imagename`, `filename`, `speed`, `move` FROM `images` WHERE 1',
function (err, results, fields) {
if (err) return console.log("Error test") //throw err;
else {
console.log('Images list');
console.log('----------------------------------');
for (var i in results) {
var gadget = results[i];
console.log(gadget.id +': '+ gadget.imagename+': '+gadget.speed+': '+gadget.move);
}
res.render('imagelist', { title: 'Imagelist',listImages:results });
}
});
connection.end(); //разобраться с ошибкой позже!!!
});
Error message:
events.js:165
throw er; // Unhandled 'error' event
^
Error: Cannot enqueue Handshake after invoking quit.
at Protocol._validateEnqueue (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:204:16)
at Protocol._enqueue (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:139:13)
at Protocol.handshake (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:52:23)
at Connection.connect (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\Connection.js:118:18)
at E:\Dropbox\untitled5-upload-3\untitled5\app.js:48:16
at Layer.handle [as handle_request] (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\layer.js:95:5)
at next (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\layer.js:95:5)
at E:\Dropbox\untitled5-upload-3\untitled5\node_modules\express\lib\router\index.js:281:22
Emitted 'error' event at:
at Connection._handleProtocolError (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\Connection.js:425:8)
at Protocol.emit (events.js:180:13)
at Protocol._delegateError (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:392:10)
at Handshake.<anonymous> (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:221:10)
at Handshake.emit (events.js:180:13)
at Handshake.Sequence.end (E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\sequences\Sequence.js:83:12)
at E:\Dropbox\untitled5-upload-3\untitled5\node_modules\mysql\lib\protocol\Protocol.js:225:14
at process._tickCallback (internal/process/next_tick.js:112:11)
It are easy way to add pass items
to view.
var imageList = [];
// Connect to MySQL database.
var connection = getMySQLConnection();
connection.connect();
// Do the query to get data.
connection.query('SELECT * FROM images', function(err, rows, fields) {
if (err) {
res.status(500).json({"status_code": 500,"status_message": "internal server error"});
} else {
// Loop check on each row
for (var i = 0; i < rows.length; i++) {
// Create an object to save current row's data
var person = {
'id':rows[i].id,
'imagename':rows[i].imagename,
'filename':rows[i].filename,
'speed':rows[i].speed,
'move':rows[i].move
}
// Add object into array
imageList.push(person);
}
// Render index.pug page using array
res.render('imagelist', { title: 'Imagelist',listImages:imageList });
}
});
// Close the MySQL connection
connection.end();

Error when connecting to MYSQL Database (NodeJS, socket.io, express)

me and a friend just started to work on a little App. It uses NodeJS (with Socket.io and Express). We're kind of new into NodeJS and thus can't really comprehend why we get the error we get. Every inch of help is appreciated :)
Here's the code:
var express = require('express');
var app = express();
var serv = require('http').Server(app);
app.get('/', function(req, res) {
res.sendFile(__dirname + '/client/index.html');
});
app.use('/client', express.static(__dirname + '/client'));
serv.listen(2000);
console.log("Server started!");
var io = require('socket.io')(serv,{});
var md5 = require('md5');
var mysql = require('mysql');
var dbconn = mysql.createConnection({
host: "mySERVER",
user: "myUSER",
password: "myPASSWORD",
database: "myDBNAME"
});
dbconn.connect(function(err) {
if (err) throw err; //THE ERROR IS THROWN HERE
});
io.sockets.on("connection", function(socket) {
socket.on("register", function(obj){
var sql = 'INSERT INTO users (name, password) VALUES ("' + obj.name + '", "' + md5(obj.password) + '")';
dbconn.query(sql, function (err, result) {
if (err) throw err;
console.log("Result: " + result);
});
});
});
And here's the Error Message:
Error: connect ECONNREFUSED mySERVER:3306
at Object.exports._errnoException (util.js:1018:11)
at exports._exceptionWithHostPort (util.js:1041:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14)
--------------------
at Protocol._enqueue (PROJECTPATH\node_modules\mysql\lib\protocol\Protocol.js:145:48)
at Protocol.handshake (PROJECTPATH\node_modules\mysql\lib\protocol\Protocol.js:52:23)
at Connection.connect (PROJECTPATH\node_modules\mysql\lib\Connection.js:130:18)
at Object.<anonymous> (PROJECTPATH\app.js:32:8)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
Thank you in advance!
It's a database connection error. You're mysql host and/or port are wrong.
Make sure the information passed to the mysq.createConnection function in the code below are correct:
var dbconn = mysql.createConnection({
host: "mySERVER",
user: "myUSER",
password: "myPASSWORD",
database: "myDBNAME"
});

unable to connect mysql in node js

my script is here
var mysql= require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '12345',
database: 'mydb'
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
when i running this code it shows this error
error connecting: Error: connect ETIMEDOUT
at Connection._handleConnectTimeout (~/node_modules/mysql/lib/Connection.js:414:13)
at Socket.g (events.js:180:16)
at Socket.EventEmitter.emit (events.js:92:17)
at Socket._onTimeout (net.js:327:8)
at Timer.unrefTimeout [as ontimeout] (timers.js:412:13)
--------------------
at Protocol._enqueue (~/mysql/lib/protocol/Protocol.js:141:48)
at Protocol.handshake (~/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at Connection.connect (~/node_modules/mysql/lib/Connection.js:125:18)
at Object.<anonymous> (~/Desktop/Node-Eclipse/server.js:10: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)
at startup (node.js:119:16)
Username and password and all other details are correct
I'm using an export that works exactly like your function and it works properly..
var mysql = require("mysql");
var self = module.exports = {
db:{},
init: function(login, callback) {
self.db = mysql.createConnection({
host:'myHost',
user:'myUser',
password:'myPassword',
database:'myDbName'
});
return self.db.connect(function(err) {
if (err) {
callback(null);
}
else {
callback(self.db);
}
});
},
execute:function(login, request, callback) {
return self.db.query(request, function(err, rows, fields) {
if (err) {
callback(null);
}
else {
callback(rows);
}
});
}
};
Please pass port number which is 3306 in your mysql connection

Node-Mysql error in saving data

I am studying nodejs with mysql and I am following this example:
https://codeforgeek.com/2015/03/real-time-app-socket-io/
But when I run the code and try to add a new data I got these errors:
C:\wamp\www\Node_JS\mysql>node server.js
Listening on 3000
A user is connected!
A user is connected!
C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\protocol\Parser.js:82
throw err;
^
TypeError: Cannot read property 'release' of undefined
at C:\wamp\www\Node_JS\mysql\server.js:37:14
at Handshake.onConnect (C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\Pool.js:54:9)
at Handshake.Sequence.end (C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\protocol\sequences\Sequence.js:96:24)
at Handshake.ErrorPacket (C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\protocol\sequences\Handshake.js:103:8)
at Protocol._parsePacket (C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\protocol\Protocol.js:274:23)
at Parser.write (C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\protocol\Parser.js:77:12)
at Protocol.write (C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\protocol\Protocol.js:39:16)
at Socket.<anonymous> (C:\wamp\www\Node_JS\mysql\node_modules\mysql\lib\Connection.js:96:28)
at Socket.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)
Here's my code in the server.js
var app = require('express')();
var mysql = require('mysql');
var http = require('http').Server(app);
var io = require('socket.io')(http);
/** mysql pool connection **/
var pool = mysql.createPool({
connectionLimit : 100,
host : 'localhost',
user : 'root',
password : '',
database : 'fbstatus',
debug : false
});
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
/** this will run automatically if server received a connection **/
io.on('connection', function(socket){
console.log('A user is connected!');
socket.on('status added', function(status){
add_status(status, function(res){
if(res) {
io.emit('refresh feed', status);
} else {
io.emit('error');
}
});
});
});
var add_status = function(status, callback) {
pool.getConnection(function(err, connection){
if(err) {
connection.release();
callback(false);
return;
}
connection.query("INSERT INTO fb_status VALUES('" + status + "')", function(err, rows){
connection.release();
if(!err) {
callback(true);
}
});
connection.on('error', function(err){
callback(false);
return;
});
});
}
http.listen(3000, function(){
console.log("Listening on 3000");
});
I dont know whats the problem about my code. Can you help me?
if(err) {
connection.release();
callback(false);
return;
}
here, if err you will not get a connection.

error connecting/querying mysql node.js and postreSQL

the mysql/node.js appears to connect then i "think" there may be a problem with the query event logic. Here's the code and error. I also have a separate/similar problem with postreSQL. I install npmed both in the same directory.
ryan#\Ryan:~/Desktop/node/datastores$ node MySQL
connection::connected
/home/ryan/Desktop/node/datastores/MySQL.js:20
if (err) throw err;
^
Error: connect ECONNREFUSED
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)
--------------------
at Protocol._enqueue (/home/ryan/Desktop/node/node_modules/mysql/lib/protocol/Protocol.js:135:48)
at Protocol.handshake (/home/ryan/Desktop/node/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at Connection.connect (/home/ryan/Desktop/node/node_modules/mysql/lib/Connection.js:123:18)
at Object.<anonymous> (/home/ryan/Desktop/node/datastores/MySQL.js:15: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)
at startup (node.js:119:16)
this is my server/mysql logic
var mysql = require('mysql');
var connectionConfig = {
host: 'localhost',
user: 'root',
password: '',
database: 'sakila'
};
var connection = mysql.createConnection( connectionConfig);
connection.connect(function(err) {
console.log('connection::connected');
});
connection.query('SELECT * FROM actor', function(err, rows, fields) {
if (err) throw err;
rows.forEach(function(row) {
console.log(row.first_name, row.last_name);
});
});
var actor = { first_name: 'Wil', last_name: 'Wheaton' };
connection.query('INSERT INTO actor SET ?', actor, function(err, results) {
if (err) throw err;
console.log(results);
});
connection.end(function(err) {
console.log('connection::end');
});
heres postre logic
var pg = require('pg');
var connectionString = 'postgres://ryan#localhost/postgres';
var client = new pg.Client(connectionString);
client.connect(function(err) {
if (err) throw err;
client.query('SELECT NOW() AS "THE TIME"', function( err, result ) {
if (err) throw err;
console.log(result.rows[0]);
client.end();
});
});
heres error
ryan#\Ryan:~/Desktop/node/datastores$ node postreSQL
/home/ryan/Desktop/node/datastores/postreSQL.js:8
if (err) throw err;
^
Error: connect ECONNREFUSED
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)
Your password seems to be empty in both connections.
You need to get the connection details for the database from your devOps / SysAdmin / whoever created it.
Ask for the hostname, port, user and password, and schema name; then put those in your init object:
// MySQL:
var connectionConfig = {
host: "", // Hostname + ":" + port (no need for :port if 3360)
user: "", // User
password: "", // Password
database: "" // Schema
};
// PostgreSQL:
var connectionString = 'postgres://user:password#hostname:port';