Linux下Node.js连接MySQL与Oracle数据库配置指南

沈知远
沈知远
发布时间:2026-10-13| 6人浏览过
原创

本文详细介绍在Linux操作系统中为Node.js应用程序配置数据库连接的两种主流方式:利用原生mysql包对接MySQL数据库,以及通过Oracle Instant Client环境适配Oracle数据库。内容包括依赖安装、环境变量设置及核心连接代码示例。

配置MySQL支持

在Linux环境中,Node.js操作MySQL主要依赖于社区成熟的mysql模块。以下步骤演示如何建立HTTP服务并执行基础查询。

第1步:安装mysql模块

目的:引入用于与MySQL交互的驱动库。
入口:项目根目录终端。
动作:执行npm安装命令。
代码:

npm install mysql

第2步:编写连接逻辑

目的:创建一个简单的HTTP服务器来验证数据库连通性并执行SQL。
入口:新建文件 mysql.js。
动作:编写包含连接配置、查询执行及HTTP响应处理的代码。注意处理连接状态回调以确保流程正确。

var sys = require('util');
var mysql=require('mysql'); 
console.log('正在连接MySQL...'); 
var http = require("http");
var server=http.createServer(function(request, response) { 
  response.writeHead(200, {"Content-Type": "text/html;charset:utf-8"});  
  response.write("<!doctype html><html><meta charset='utf-8'/>"); 
   var client = mysql.createConnection({'host':'localhost','port':3306,'user':'testmysql','password':'123456'}); 
  var clientConnectionReady = function(client)
  { 
    client.query('use test', function(error, results) { 
      if(error) { 
        console.log('ClientConnectionReady Error: ' + error.message); 
        client.end(); 
        return; 
      }else{ 
        response.write("nodejs 服务器已经开始工作...<br/>"); 
        response.write("已经连接上MySQL....<br/>"); 
    }
      clientReady(client); 
    }); 
  }; 
    
  var clientReady = function(client) { 
    var values = ['不错啊']; 
    client.query('insert into nodemysql set names = :1', values, 
      function(error, results) { 
        if(error) { 
          console.log("ClientReady Error: " + error.message); 
          client.end(); 
          return; 
        } 
        console.log('Inserted: ' + results.affectedRows + ' row.'); 
        console.log('Id inserted: ' + results.insertId); 
      } 
    ); 
    getData(client); 
  } 
    
  var getData = function(client) { 
    client.query( 
      'select * from nodemysql', 
      function selectCb(error, results, fields) { 
        if (error) { 
          console.log('GetData Error: ' + error.message); 
          client.end(); 
          return; 
        } 
     var data = ''; 
      for(var i=0; i<results.length; i++){ 
      var firstResult = results[i]; 
         data += 'id: ' + firstResult['id']+'  name: ' + firstResult['names']+"<br/>"; 
      } 
       
       response.write(data);  
       response.write("关闭MySQL连接..."); 
       response.write("</html>"); 
      response.end(); 
      } 
    ); 
    client.end(); 
     
  }; 
    
  clientConnectionReady(client); 
}); 
server.listen(8033,"127.0.0.1"); 
 
var sys = require("util");
sys.puts("Server running at http://localhost:8033/");  

运行 node mysql.js,并在浏览器访问 http://localhost:8033 查看输出结果。

配置Oracle支持

由于Oracle数据库特性,Node.js通常需要系统级的客户端库支持。这涉及下载官方Instant Client并进行环境变量配置。

第1步:安装Oracle Instant Client

目的:获取底层的Oracle数据库C接口库。
入口:Linux终端。
动作:从Oracle官网下载 instantclient-basic-linux 和 instantclient-sdk-linux 压缩包,解压并将文件移至标准路径(如 /opt),同时创建符号链接。

$ unzip instantclient-basic-linux-11.2.0.3.0.zip 
$ unzip instantclient-sdk-linux-11.2.0.3.0.zip  
$ sudo mv instantclient_11_2/ /opt/instantclient 
 
$ cd /opt/instantclient 
$ sudo ln -s libocci.so.11.1 libocci.so 
$ sudo ln -s libclntsh.so.11.1 libclntsh.so 

第2步:配置环境变量

目的:让Node.js模块能找到头文件和动态链接库。
入口:当前会话或配置文件(如 .bashrc)。
动作:设置 OCI 路径和 LD_LIBRARY_PATH。

$ export OCI_INCLUDE_DIR=/opt/instantclient/sdk/include/ 
$ export OCI_LIB_DIR=/opt/instantclient 

第3步:安装node-oracle模块

目的:编译并安装Node.js下的Oracle驱动。
入口:Node.js项目目录。
动作:运行npm install命令并设置库路径。

$ cd /usr/local/lib 
 
$ npm install oracle 
 
export LD_LIBRARY_PATH=/opt/instantclient 

第4步:验证连接

目的:确认代码逻辑能正常调用API。
入口:新建 oracle.js 文件。
动作:编写连接脚本,注意 connection.execute 方法必须传入三个参数以避免错误。

var oracle = require("oracle"); 
 
oracle.connect({ "hostname": "localhost", "user": "demo", "password": "demo", "database": "orcl", "port":1521}, function(err, connection) { 
 if(err) { 
  console.log(err); 
 } 
 // selecting rows 注意 connection.execute 方法必须要三个参数 不然会出错 
 connection.execute("SELECT * FROM TEST WHERE ID = :1", ['1'], function(err1, results) { 
  // results will be an array of objects 
  console.log("query start"); 
  if(err1) { 
    console.log(err1); 
  } 
  // console.log(results.length); 
  for(var i = 0; i < results.length; i++) { 
   console.log(results[i].ID); 
  } 
  connection.close(); 
 }); 
}); 

在终端执行 node oracle.js 以验证数据查询功能是否正常。

以上就是在Linux下为Node.js程序配置MySQL或Oracle数据库支持的详细内容,更多关于Node.js数据库集成的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。