Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SequelizeConnectionRefusedError JSON MySQL

Tags:

node.js

mysql

Hey there I am trying to have a /create function on my REST server. I work on C9.io

var express = require("express")
var bodyParser = require("body-parser")
var cors = require("cors")
var Sequelize = require("sequelize")
var util = require("util")

var app  = express()
app.use(bodyParser.json())
 app.use(cors())

var sequelize = new Sequelize('authordb','root','',{
dialect : 'mysql',
port : 3305
})

var Author = sequelize.define('author',{
name : Sequelize.STRING,
email : { 
    type : Sequelize.STRING,
    validate : { 
        isEmail : true
    }
 }
 })

 var Message = sequelize.define('message',{
subject : Sequelize.STRING,
content : Sequelize.STRING
 })

Author.hasMany(Message, {onDelete : 'cascade'})
Message.belongsTo(Author)

  app.get('/create', function(req,res){
sequelize.sync()
    .complete(function(err){
        if (err){
            console.log(err)
        }
        else{
            res.status(201).send('created all')
        }
    })
  })

 app.post('/authors',function(req,res){
var author = req.body
Author.create(author)
    .complete(function(err){
        if (err){
            console.log(err)
        }
        else{
            res.status(201).send('created author')
        }
    })
   })

app.get('/authors/:id',function(req,res){
Author.find({
    where : {
        id : req.params.id
    },
    attributes : ['id','name','email']
})
.complete(function(err,authorDAO){
        if (err){
            console.log(err)
        }
        else{
            // console.log(authorDAO)
            // util.inspect(authorDAO)
            var author = authorDAO.dataValues
            res.status(200).send(author)
        }
  })
   })

   app.put('/authors/:id',function(req,res){
   var newValues = req.body
    Author.find({
    where : {
        id : req.params.id
    }
   })
.success(function(authorDAO) {
    authorDAO.email = newValues.email
    authorDAO.name = newValues.name
    authorDAO.save(['email','name'])
        .success(function(){
            res.status(202).send('modified author')
        })
 })
    })

    app.delete('/authors/:id',function(req,res){
   Author.find({
    where : {
        id : req.params.id
    }
 })
.success(function(authorDAO) {
    authorDAO.destroy()
        .success(function(){
            res.status(202).send('deleted author')
        })
  })

    })

  app.post('/authors/:id/messages',function(req, res) {
var message = req.body
Author.find({
    where : {
        id : req.params.id
    }
})
.success(function(authorDAO){
    Message.create(message)
        .success(function(messageDAO){
            authorDAO.addMessage(messageDAO)
                .success(function(){
                    res.status(201).send('create message')
                })
        })
     })
   })

   app.get('/authors/:id/messages',function(req, res) {
   Author.find({
    where : {
        id : req.params.id
    },
    include : {model : Message, as : 'messages'}
    })
  .success(function(authorDAO) {
    var messages = authorDAO.dataValues.messages
    res.status(200).send(messages)
   })
    })


  app.listen(8080)

The error is :

{ [SequelizeConnectionRefusedError: connect ECONNREFUSED]
  name: 'SequelizeConnectionRefusedError',
  message: 'connect ECONNREFUSED',
  parent: 
   { [Error: connect ECONNREFUSED]
     code: 'ECONNREFUSED',
     errno: 'ECONNREFUSED',
     syscall: 'connect',
     fatal: true },
  original: 
   { [Error: connect ECONNREFUSED]
     code: 'ECONNREFUSED',
     errno: 'ECONNREFUSED',
     syscall: 'connect',
     fatal: true } }
like image 604
TrulyXax Avatar asked Oct 29 '25 16:10

TrulyXax


1 Answers

For what it's worth, I received the following error. My issue turned out to be very simple: I hadn't started my mySQL server.

{ SequelizeConnectionRefusedError: connect ECONNREFUSED 127.0.0.1:3306
    at Utils.Promise.tap.then.catch.err (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:139:19)
    at tryCatcher (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/promise.js:690:18)
    at _drainQueueStep (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/async.js:138:12)
    at _drainQueue (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/async.js:131:9)
    at Async._drainQueues (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/async.js:147:5)
    at Immediate.Async.drainQueues (/Users/Stephen/Documents/_coding/hackReactorRemote/hrr34-fec/calendar-component/node_modules/bluebird/js/release/async.js:17:14)
    at runCallback (timers.js:810:20)
    at tryOnImmediate (timers.js:768:5)
    at processImmediate [as _immediateCallback] (timers.js:745:5)
  name: 'SequelizeConnectionRefusedError',
  parent:
   { Error: connect ECONNREFUSED 127.0.0.1:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14)
     errno: 'ECONNREFUSED',
     code: 'ECONNREFUSED',
     syscall: 'connect',
     address: '127.0.0.1',
     port: 3306,
     fatal: true },
  original:
   { Error: connect ECONNREFUSED 127.0.0.1:3306
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14)
     errno: 'ECONNREFUSED',
     code: 'ECONNREFUSED',
     syscall: 'connect',
     address: '127.0.0.1',
     port: 3306,
     fatal: true } }

Solution was:

  1. Check the mySql server status
  2. When I realized it wasn't on - start it.
    $ mysql.server status
     ERROR! MySQL is not running, but PID file exists
    $ mysql.server start
    Starting MySQL
     SUCCESS!

After MySQL was running, my connection worked as expected.

like image 139
StephenWeiss Avatar answered Oct 31 '25 05:10

StephenWeiss



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!