温馨提示×

Debian下Nodejs如何连接数据库

小樊
36
2026-08-14 00:45:23
栏目: 编程语言

在 Debian 系统下,Node.js 连接数据库的方式取决于你使用的是哪种数据库(如 MySQL、PostgreSQL、MongoDB 等)。下面我以最常见的几种数据库为例,分别说明 Node.js 在 Debian 上的连接方法,并给出完整示例


一、准备工作(通用)

1. 安装 Node.js(Debian)

sudo apt update
sudo apt install -y nodejs npm

推荐安装 LTS 版本(使用 NodeSource):

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

检查版本:

node -v
npm -v

2. 初始化项目

mkdir node-db-demo
cd node-db-demo
npm init -y

二、Node.js 连接 MySQL(最常见)

1. 安装 MySQL 数据库(Debian)

sudo apt install -y mysql-server
sudo mysql_secure_installation

登录 MySQL:

sudo mysql -u root -p

创建数据库和用户:

CREATE DATABASE testdb;
CREATE USER 'nodeuser'@'localhost' IDENTIFIED BY 'nodepass';
GRANT ALL PRIVILEGES ON testdb.* TO 'nodeuser'@'localhost';
FLUSH PRIVILEGES;

2. 安装 Node.js MySQL 驱动

npm install mysql2

3. Node.js 连接 MySQL 示例

// mysql_demo.js
const mysql = require('mysql2/promise');

async function main() {
  const connection = await mysql.createConnection({
    host: 'localhost',
    user: 'nodeuser',
    password: 'nodepass',
    database: 'testdb'
  });

  const [rows] = await connection.execute('SELECT NOW() AS now');
  console.log(rows);

  await connection.end();
}

main();

运行:

node mysql_demo.js

三、Node.js 连接 PostgreSQL

1. 安装 PostgreSQL

sudo apt install -y postgresql

切换用户并创建数据库:

sudo -u postgres psql
CREATE DATABASE testdb;
CREATE USER nodeuser WITH PASSWORD 'nodepass';
GRANT ALL PRIVILEGES ON DATABASE testdb TO nodeuser;

2. 安装 pg 模块

npm install pg

3. Node.js 连接 PostgreSQL 示例

const { Client } = require('pg');

const client = new Client({
  host: 'localhost',
  user: 'nodeuser',
  password: 'nodepass',
  database: 'testdb',
  port: 5432
});

async function main() {
  await client.connect();
  const res = await client.query('SELECT NOW()');
  console.log(res.rows);
  await client.end();
}

main();

四、Node.js 连接 MongoDB

1. 安装 MongoDB(Debian 12)

官方方式(推荐):

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt update
sudo apt install -y mongodb-org
sudo systemctl start mongod

2. 安装 mongoose

npm install mongoose

3. Node.js 连接 MongoDB 示例

const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/testdb')
  .then(() => {
    console.log('MongoDB connected');
    mongoose.connection.close();
  })
  .catch(err => console.error(err));

五、常见问题排查

1. 连接失败(ECONNREFUSED)

Error: connect ECONNREFUSED 127.0.0.1:3306

✅ 检查:

  • 数据库是否启动
  • 端口是否正确
  • 是否正确监听 127.0.0.1localhost

2. Debian 下权限问题

  • MySQL:sudo mysql -u root
  • PostgreSQL:sudo -u postgres psql
  • MongoDB:mongod 是否运行

六、推荐做法(生产环境)

✅ 使用环境变量管理数据库配置:

npm install dotenv
require('dotenv').config();
DB_HOST=localhost
DB_USER=nodeuser
DB_PASS=nodepass
DB_NAME=testdb

七、我可以继续帮你

你可以告诉我:

  • ✅ 使用哪种数据库(MySQL / PostgreSQL / MongoDB / SQLite)
  • ✅ 是否需要 ORM(Sequelize / TypeORM / Prisma)
  • ✅ Node.js 版本
  • ✅ 是否是服务器部署(Docker / systemd / PM2)

我可以直接给你生产级配置示例

0