Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

220
Views
Error: escuchar EADDRINUSE: dirección ya en uso :::3306

Estoy tratando de crear un sistema de registro con MySQL y Node.JS. Pero recibo el error que ve a continuación, todavía estoy buscando activamente una solución, pero no pude encontrarla. Y decidí preguntarte.

.env

 DB_HOST = 127.0.0.1
DB_USER = newuser
DB_PASSWORD = password123#
DB_DATABASE = userDB
DB_PORT = 3306

PORT = 3000

node.js

 const express = require('express');
const app = express();

const mysql = require('mysql');

require('dotenv').config({path: './dbInfo.env'})

const db = mysql.createPool({
 connectionLimit: 100,
 host: process.env.DB_HOST,
 user: process.env.DB_USER,
 password: process.env.DB_PASSWORD,
 database: process.env.DB_DATABASE,
 port: process.env.DB_PORT
})

db.getConnection( (err, connection) => {

 if (err) throw (err)
 console.log("DB connected succesful:" + connection.threadId)

})

const port = process.env.DB_PORT

app.listen(port, 
 () => console.log('Server started on port ${port}...'))

console.log(process.env.DB_PASSWORD)
almost 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Parece que el Puerto 3306 ya está en uso. 3306 es el puerto estándar de MySQL, por lo que lo más probable es que su instancia de MySQL ya se esté ejecutando, lo que le gustaría.

Solo puede tener un servicio ejecutándose detrás de un puerto. Ese es el propósito de los puertos para dirigir el tráfico al proceso que puede manejar ese tráfico o espera ese tráfico.

Para resolver el problema, use const port = process.env.PORT en lugar de const port = process.env.DB_PORT . Su servidor Express luego se ejecuta en el puerto 3000 y su servidor MySQL en el puerto 3306 .

FYI: debe especificar algunos valores predeterminados (o errores) en caso de que las variables de entorno no estén configuradas. Es posible que los haya configurado aquí con su archivo .env y que desee ejecutar el servidor en otro entorno algún día y se olvide de configurar algo y se pregunte por qué su servidor se bloquea.

Una solución rápida y fácil que funcionará para empezar podría ser usar OR lógico ( || ). Esto establecerá el conjunto de puertos en las variables de entorno o el valor predeterminado de 3000 .

 // Mocking process.env
const process = { env: {}} 
// process.env.PORT is not defined here so the default value will be used
const port = process.env.PORT || 3000;
console.log(`Port: ${port}`)

También podría estar interesado en el paquete dotenv npm .

almost 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!