Nodejs在Linux系统下如何远程连接SqlServer

Nodejs在Linux系统下如何远程连接SqlServer

RT,知道的大神给下思路啊。

8 回复

Node.js 在 Linux 系统下如何远程连接 SQL Server

在 Linux 系统下使用 Node.js 远程连接 SQL Server 是一个常见的需求。为了实现这一目标,你可以使用 mssql 模块,它是一个流行的用于与 Microsoft SQL Server 交互的 Node.js 库。以下是具体的步骤和示例代码。

步骤

  1. 安装必要的依赖 首先,你需要在你的 Node.js 项目中安装 mssql 模块。你可以通过 npm(Node 包管理器)来安装它。

    npm install mssql
    
  2. 配置 SQL Server 确保你的 SQL Server 已经配置为接受远程连接。这通常需要在 SQL Server 的配置管理器中启用 TCP/IP 协议,并且可能还需要修改防火墙设置以允许 SQL Server 的端口(默认是 1433)。

  3. 编写连接代码 使用 mssql 模块来建立到 SQL Server 的连接并执行查询。

示例代码

const sql = require('mssql');

// 配置数据库连接信息
const config = {
    server: 'your_sql_server_address', // SQL Server 的 IP 地址或主机名
    database: 'your_database_name', // 要连接的数据库名称
    user: 'your_username', // 登录用户名
    password: 'your_password', // 登录密码
    port: 1433, // SQL Server 默认端口
    options: {
        encrypt: true, // 如果你使用的是 Azure SQL 或者需要加密连接,则设为 true
        trustServerCertificate: false // 如果你需要信任服务器证书,则设为 true
    }
};

// 创建连接池
sql.connect(config, (err) => {
    if (err) {
        console.log('Error connecting to SQL Server:', err);
        return;
    }
    console.log('Connected to SQL Server successfully!');

    // 执行查询
    const request = new sql.Request();
    request.query('SELECT * FROM your_table', (err, recordset) => {
        if (err) {
            console.log('Error executing query:', err);
            return;
        }
        console.log('Query result:', recordset);
        sql.close(); // 关闭连接
    });
});

解释

  • server: SQL Server 的 IP 地址或主机名。
  • database: 你要连接的数据库名称。
  • userpassword: 登录 SQL Server 的用户名和密码。
  • port: SQL Server 的默认端口是 1433。
  • options.encryptoptions.trustServerCertificate: 如果你使用的是 Azure SQL 或者需要加密连接,则需要设置这些选项。

通过以上步骤和代码,你就可以在 Linux 系统下使用 Node.js 成功地远程连接到 SQL Server 并执行数据库操作了。


我曾经使用过node-mssql
它基于TDS协议,不依赖于win32,linux上可以使用。

可以了,谢谢你啊

我是这样写的: var config = { user: ‘ausp’, password: ‘super’, server: ‘http://192.168.1.241’, // You can use ‘localhost\instance’ to connect to named instance database: ‘fys120’, //dbName? options: { encrypt: true // Use this if you’re on Windows Azure } }

还这样写了: var config = { user: ‘ausp’, password: ‘super’, server: ‘http://192.168.1.241\fys120’, // You can use ‘localhost\instance’ to connect to named instance database: ‘sqlserver’, options: { encrypt: true // Use this if you’re on Windows Azure } }

都连接不上,帮忙看看问题在哪里啊,谢谢你

sqlserver是2000版本的,可以吗?我看msnodesql和Tedious都是支持sqlserver2005及以上的

要在Linux系统下使用Node.js远程连接到SQL Server,你可以使用msnodesqlv8tedious这两个库。以下是使用tedious的示例代码和说明。

示例代码

首先,确保安装了tedious库:

npm install tedious

然后,在你的Node.js应用程序中,你可以这样连接到SQL Server:

const { Connection, Request } = require("tedious");

// 配置连接参数
const config = {
    server: "your_sql_server_address", // 例如:"192.168.1.100"
    authentication: {
        type: "default",
        options: {
            userName: "your_username", // 你的SQL Server用户名
            password: "your_password"  // 你的SQL Server密码
        }
    },
    options: {
        database: "your_database_name", // 你要连接的数据库名称
        encrypt: true // 如果需要,可以启用SSL加密
    }
};

// 创建连接
const connection = new Connection(config);

// 连接事件处理
connection.on("connect", err => {
    if (err) {
        console.error(err);
    } else {
        console.log("Connected to SQL Server!");
        
        // 执行查询
        executeStatement();
    }
});

function executeStatement() {
    // 创建请求对象
    const request = new Request("SELECT * FROM your_table_name", (err, rowCount) => {
        if (err) {
            console.error(err);
        } else {
            console.log(`${rowCount} rows returned.`);
        }

        // 关闭连接
        connection.close();
    });

    // 处理查询结果
    request.on("row", columns => {
        columns.forEach(column => {
            console.log(column.value);
        });
    });

    // 发送请求
    connection.execSql(request);
}

解释

  1. 安装依赖:使用npm install tedious安装tedious库。
  2. 配置连接config对象包含了连接到SQL Server所需的所有信息,如服务器地址、用户名、密码等。
  3. 创建连接:使用new Connection(config)创建一个新的连接实例。
  4. 连接事件处理:通过监听connect事件来处理连接成功或失败的情况。
  5. 执行查询:一旦连接建立,调用executeStatement()函数来执行SQL查询。
  6. 处理结果:使用request.on("row", ...)处理查询返回的结果行。

以上步骤应该可以帮助你在Linux系统下通过Node.js远程连接到SQL Server并执行基本的查询操作。

回到顶部