Srinivasa K C
Srinivasa K C

Reputation: 59

Error: Connection lost: The server closed the connection node js mysql


I am getting this error. after some time. I think this error comes because MySQL is in idle. anyone suggest me to prevent this error.

Error: Connection lost: The server closed the connection.
    at Protocol.end (/var/www/html/invoice/invoice2/node_modules/mysql/lib/protocol/Protocol.js:112:13)
    at Socket.<anonymous> (/var/www/html/invoice/invoice2/node_modules/mysql/lib/Connection.js:94:28)
    at Socket.<anonymous> (/var/www/html/invoice/invoice2/node_modules/mysql/lib/Connection.js:526:10)
    at Socket.emit (events.js:333:22)
    at endReadableNT (_stream_readable.js:1204:12)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on Connection instance at:
    at Connection._handleProtocolError (/var/www/html/invoice/invoice2/node_modules/mysql/lib/Connection.js:423:8)
    at Protocol.emit (events.js:321:20)
    at Protocol._delegateError (/var/www/html/invoice/invoice2/node_modules/mysql/lib/protocol/Protocol.js:398:10)
    at Protocol.end (/var/www/html/invoice/invoice2/node_modules/mysql/lib/protocol/Protocol.js:116:8)
    at Socket.<anonymous> (/var/www/html/invoice/invoice2/node_modules/mysql/lib/Connection.js:94:28)
    [... lines matching original stack trace ...]
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  fatal: true,
  code: 'PROTOCOL_CONNECTION_LOST'
}

Upvotes: 0

Views: 3410

Answers (2)

Srinivasa K C
Srinivasa K C

Reputation: 59

Here is solution for connection protocol lost. This solution solved me

Here the data base connection

const mysql = require('mysql');

const connection=mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'******',
    database:'db_name'
});

connection.connect(function(error){
    if(!!error) console.log(error);
     else console.log('SQL Database Connected!');
});

module.exports = connection;`

just run the node server using pm2, for example: pm2 start app.js

Ref: Install the npm pm2 package

Upvotes: 1

Sai Kumar
Sai Kumar

Reputation: 285

Hi when you connect mysql with normal connection with node js server , after some time your mysql client will down so you have to connect to mysql server with pooling mechanism.

Please go through here you can find the how to connect mysql with pooling connection (https://github.com/mysqljs/mysql#pooling-connections)

var mysql = require('mysql');
var pool  = mysql.createPool({
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret',
  database        : 'my_db'
});

pool.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
  if (error) throw error;
  console.log('The solution is: ', results[0].solution);
});

Upvotes: 1

Related Questions