错误:连接丢失:服务器关闭了节点js中的连接

问题描述 投票:0回答:1

我已经使用

Node.js v19.3.0
设置了
MySQL 5.7.41
docker 20.10.14, build a224086

我已经在

script.js
文件中编写了连接代码,但是当我点击
npm start
然后在 8-10 秒后它会导致连接关闭错误,如下所示

Error: Connection lost: The server closed the connection. at Protocol.end (/home/kishan/node-api-demo/node_modules/mysql/lib/protocol/Protocol.js:112:13) at Socket.<anonymous> (/home/kishan/node-api-demo/node_modules/mysql/lib/Connection.js:94:28) at Socket.<anonymous> (/home/kishan/node-api-demo/node_modules/mysql/lib/Connection.js:526:10) at Socket.emit (node:events:525:35) at endReadableNT (node:internal/streams/readable:1359:12) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) -------------------- at Protocol._enqueue (/home/kishan/node-api-demo/node_modules/mysql/lib/protocol/Protocol.js:144:48) at Protocol.handshake (/home/kishan/node-api-demo/node_modules/mysql/lib/protocol/Protocol.js:51:23) at Connection.connect (/home/kishan/node-api-demo/node_modules/mysql/lib/Connection.js:116:18) at Object.<anonymous> (/home/kishan/node-api-demo/config/server.js:79:5) at Module._compile (node:internal/modules/cjs/loader:1218:14) at Module._extensions..js (node:internal/modules/cjs/loader:1272:10) at Module.load (node:internal/modules/cjs/loader:1081:32) at Module._load (node:internal/modules/cjs/loader:922:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:82:12) at node:internal/main/run_main_module:23:47 { fatal: true, code: 'PROTOCOL_CONNECTION_LOST' }

我在下面创建了

docker-compose.yml
script.js
文件。

docker-compose.yml

version: '3'
 
services:
  db:
    image: mysql:5.7
    container_name: db
    environment:
      MYSQL_ROOT_PASSWORD: my_secret_password
      MYSQL_DATABASE: app_db
      MYSQL_USER: db_user
      MYSQL_PASSWORD: db_user_pass
    ports:
      - "6033:3306"
    volumes:
      - dbdata:/var/lib/mysql
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: pma
    links:
      - db
    environment:
      PMA_HOST: db
      PMA_PORT: 3306
      PMA_ARBITRARY: 1
    restart: always
    ports:
      - 2025:80
volumes:
  dbdata:

script.js

var mysql = require("mysql");

var con = mysql.createConnection({
  connectionLimit: 100,
  //host: "localhost",
  user: "db_user",
  password: "db_user_pass",
  database: "app_db",
  port: 2025,
  // connectionLimit: 15,
  // queueLimit: 30,
  // queryTimeout: 600000, 
  // connectTimeout: 1000000,
  // acquireTimeout: 1000000
});

con.connect(function (err) {
  if (err) throw err;
  console.log("Connected!");
});

我已经尝试删除所有关于 createConnection 函数的评论,但它没有用

请帮助我以标准方式解决此问题。

谢谢!

javascript node.js docker docker-compose connection
1个回答
1
投票

您应该连接到数据库(端口 6033,而不是 pma [2025])。

© www.soinside.com 2019 - 2024. All rights reserved.