I am getting an error while connecting to mysql database - javascript

I am trying to input some data into a mysql database, but I can't connect to it.
My code:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "yourusername",
password: "yourpassword"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
I have also installed mysql into my system by using npm install mysql in cmd. Whenever I try to execute the above code, I get this error:
C:\Users\Abhishek\Desktop\Data scraping\scraping.js:60
if (err) throw err;
^
Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1129:16)
--------------------
at Protocol._enqueue (C:\Users\Abhishek\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\Users\Abhishek\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (C:\Users\Abhishek\node_modules\mysql\lib\Connection.js:116:18)
at Object.<anonymous> (C:\Users\Abhishek\Desktop\Data scraping\scraping.js:59:5)
at Module._compile (node:internal/modules/cjs/loader:1083:30)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
at Module.load (node:internal/modules/cjs/loader:948:32)
at Function.Module._load (node:internal/modules/cjs/loader:789:14)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:72:12)
at node:internal/main/run_main_module:17:47 {
errno: -4078,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3306,
fatal: true
}
How do I fix this?

Related

Unable to connect to remote MySQL database with mysql package

I have tried to connect to my remote MySQL database server with npm's mysql package but it keeps on throwing this error
But it works fine when I use mysqli with PHP
ERROR:
Error: connect ETIMEDOUT
at PoolConnection.Connection._handleConnectTimeout (/home/rilla/Desktop/dbTest/node_modules/mysql/lib/Connection.js:409:13)
at Object.onceWrapper (events.js:416:28)
at Socket.emit (events.js:310:20)
at Socket._onTimeout (net.js:479:8)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)
--------------------
at Protocol._enqueue (/home/rilla/Desktop/dbTest/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/home/rilla/Desktop/dbTest/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at PoolConnection.connect (/home/rilla/Desktop/dbTest/node_modules/mysql/lib/Connection.js:116:18)
at Pool.getConnection (/home/rilla/Desktop/dbTest/node_modules/mysql/lib/Pool.js:48:16)
at Object.<anonymous> (/home/rilla/Desktop/dbTest/test.js:22:6)
at Module._compile (internal/modules/cjs/loader.js:1133:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)
at Module.load (internal/modules/cjs/loader.js:977:32)
at Function.Module._load (internal/modules/cjs/loader.js:877:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12) {
errorno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
fatal: true
}
MY CODE:
// Get the mysql service
var mysql = require("mysql");
// Add the credentials to access your database
// var connection = mysql.createConnection({
// host: "my_host", // hosts IP here
// port: 3306,
// user: "my_username",
// password: "my_password",
// database: "my_database",
// });
var pool = mysql.createPool({
connectionLimit: 100,
host: "my_host", // hosts IP here
port: 3306,
user: "my_username",
password: "my_password",
database: "my_database",
});
pool.getConnection(function (err, conn) {
if (err) {
console.log(err);
} else {
console.log('it works now')
}
});
// connect to mysql
// connection.connect(function (err) {
// // in case of error
// if (err) {
// console.log(err);
// console.log(err.code);
// console.log(err.fatal);
// } else {
// console.log('it works now')
// }
// });
I have tried with sequelize too but no avail. I can't figure why it's not connecting

how to connect to MySQL(phphmyadmin) from Node.js?

When installing a fresh version of xampp I'm able to connect my js script to MySQL through the terminal.
const mysql = require('mysql');
let con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
port:3307
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
PS C:\login> node connection.js
Connected!
I've been trying another db which I have credentials for but it seems to be a problem when you have a password property in the con object. That it will not connect with a password :P What Im I doing wrong here?
C:\login\connection.js:13
if (err) throw err;
^
Error: connect ECONNREFUSED 127.0.0.1:3306
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1134:16)
--------------------
at Protocol._enqueue (C:\login\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\login\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (C:\login\node_modules\mysql\lib\Connection.js:116:18)
at Object.<anonymous> (C:\login\connection.js:12:7)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
at internal/main/run_main_module.js:17:11 {
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3306,
fatal: true
}
var mysql = require("mysql");
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database:"xyz"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
PS C:\login> node connection.js
Connected!

rror: connect ENOENT /Applications/MAMP/tmp/mysql/mysql.sock

i have a problem that i cant use mysql server. so i asked the solution in stackoverflow and other error was happend..
var mysql = require("mysql");
var connection = mysql.createConnection({
host: "127.0.0.1",
user: "root",
password: "111111",
database: "opentutorials",
socketPath: "/Applications/MAMP/tmp/mysql/mysql.sock"
});
connection.connect();
connection.query("SELECT * FROM topic", function(error, results, fields) {
if (error) {
console.log(error);
}
console.log(results);
});
connection.end();
here is my code and the error
Error: connect ENOENT /Applications/MAMP/tmp/mysql/mysql.sock
at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
--------------------
at Protocol._enqueue (/Users/junggri/Desktop/mysql/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/Users/junggri/Desktop/mysql/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/Users/junggri/Desktop/mysql/node_modules/mysql/lib/Connection.js:119:18)
at Object. (/Users/junggri/Desktop/mysql/nodejs/mysql.js:11:12)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'connect',
address: '/Applications/MAMP/tmp/mysql/mysql.sock',
fatal: true }

Is there a good way to surface error traces in production across event emitters / event loop boundaries?

Let's say I have:
const req = require('net').createConnection(80, 'localhost');
req.on('error', (error) => {
console.error(error) // handle somehow
});
If error event occurs, I get
{ Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1117:14)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80 }
In the terminal.
I'd like instead to see the full stack:
{ Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1117:14)
at Object.<anonymous> (/Users/aleksey/error-handing-example.js:2:7)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80 }
Note: I obtained the full trace artificially like this:
Error.captureStackTrace(this);
const req = require('net').createConnection(80, 'localhost');
req.on('error', (error) => {
error.stack += this.stack.replace(/^.+$/, '');
console.error(error) // handle somehow
});
I can't be doing this for all errors, as it's not sustainable
Is there a way to do this:
a. In a way that doesn't hurt production stability (longjohn claims that it's for development only)?
b. Automatically?
Here's a hacky thing I cooked up using async_hooks and overriding Error.captureStackTrace:
const ah = require('async_hooks');
const traces = new Map();
ah.createHook({
init(id) {
const _trace = {};
Error.captureStackTrace(_trace);
traces.set(id, _trace.stack.replace(/(^.+$\n){4}/m, '\n'));
},
destroy(id) {
traces.delete(id);
},
}).enable();
global.Error = class extends Error {
constructor(message) {
super(message);
this.constructor.captureStackTrace(this, this.constructor);
}
static captureStackTrace(what, where) {
super.captureStackTrace.call(Error, what, where);
const trace = traces.get(ah.executionAsyncId());
if (trace) what.stack += trace;
}
};
The gist is:
Keep a map of asyncId => traces
Override Error.captureStackTrace to use the trace from that asyncId on top of the original stack
Not sure about its performance limitations, bugginess, and robustness, but that's all I could come up with .
Now if I have:
const req = net.createConnection(8080);
req.once('error', err => {
console.error(err);
});
instead of
{ Error: connect ECONNREFUSED 127.0.0.1:8080
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1084:14)
I get
{ Error: connect ECONNREFUSED 127.0.0.1:8080
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1084:14)
at TCPConnectWrap.emitInitNative (internal/async_hooks.js:137:43)
at internalConnect (net.js:840:26)
at defaultTriggerAsyncIdScope (internal/async_hooks.js:294:19)
at GetAddrInfoReqWrap.emitLookup [as callback] (net.js:1006:9)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:62:10)
at GetAddrInfoReqWrap.emitInitNative (internal/async_hooks.js:137:43)
at lookup (dns.js:142:19)
at net.js:981:5
at defaultTriggerAsyncIdScope (internal/async_hooks.js:294:19)
at lookupAndConnect (net.js:980:3)
at Socket.connect (net.js:915:5)
at Object.connect (net.js:162:17)
at Object.<anonymous> (/Users/aleksey/epudos-lite/server/test.js:28:17)

error while creating database using node js

I am new to node js and i am trying to create a database.
i copied code from w3school and tried to run in my pc.
i got the following error:
C:\Users\HP\Desktop>node db.js
C:\Users\HP\Desktop\db.js:10
if (err) throw err;
^
Error: connect ECONNREFUSED 127.0.0.1:3306
at Object._errnoException (util.js:999:13)
at _exceptionWithHostPort (util.js:1020:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1207:14)
--------------------
at Protocol._enqueue (C:\Users\HP\node_modules\mysql\lib\protocol\Protocol.j
s: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\Desktop\db.js:9:5)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)
C:\Users\HP\Desktop>
db.js:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "myusername",
password: "mypassword"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
/*Create a database named "mydb":*/
con.query("CREATE DATABASE mydb", function (err, result) {
if (err) throw err;
console.log("Database created");
});
});
I am completely new to node js.

Categories

Resources