在 Debian 系统下,Node.js 连接数据库的方式取决于你使用的是哪种数据库(如 MySQL、PostgreSQL、MongoDB 等)。下面我以最常见的几种数据库为例,分别说明 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
mkdir node-db-demo
cd node-db-demo
npm init -y
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;
npm install mysql2
// 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
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;
npm install pg
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();
官方方式(推荐):
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
npm install mongoose
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/testdb')
.then(() => {
console.log('MongoDB connected');
mongoose.connection.close();
})
.catch(err => console.error(err));
Error: connect ECONNREFUSED 127.0.0.1:3306
✅ 检查:
127.0.0.1 或 localhostsudo mysql -u rootsudo -u postgres psqlmongod 是否运行✅ 使用环境变量管理数据库配置:
npm install dotenv
require('dotenv').config();
DB_HOST=localhost
DB_USER=nodeuser
DB_PASS=nodepass
DB_NAME=testdb
你可以告诉我:
我可以直接给你生产级配置示例。