全部产品
Search
文档中心

云原生多模数据库 Lindorm:基于Node.js的应用开发

更新时间:Nov 09, 2023

本文介绍如何使用Node.js的MySQL2驱动包连接并使用Lindorm宽表引擎。

前提条件

操作步骤

  1. 安装Node.js。安装包下载地址:Node.js

  2. 安装MySQL2驱动包。驱动包下载地址:MySQL

  3. 配置连接参数。

    connection = mysql.createConnection({
          host: 'ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com',
          port: 33060,
          user: 'user',
          password: 'test',
          database: 'default',
          connectTimeout: 10000
    });

    参数说明

    参数

    说明

    host

    Lindorm宽表引擎的MySQL兼容地址。如何获取MySQL兼容地址,请参见查看连接地址

    重要
    • 如果应用部署在ECS实例,建议您通过专有网络访问Lindorm实例,可获得更高的安全性和更低的网络延迟。

    • 如果应用部署在本地,在通过公网连接Lindorm实例前,需在控制台开通公网地址。开通方式:在控制台选择数据库连接 > 宽表引擎,在宽表引擎页签单击开通公网地址

    • 通过专有网络访问Lindorm实例,host请填写MySQL兼容地址对应的专有网络地址。通过公网访问Lindorm实例,host请填写MySQL兼容地址对应的公网地址。

    port

    Lindorm宽表引擎MySQL协议的端口,固定为33060。

    user

    如果您忘记用户密码,可以通过Lindorm宽表引擎的集群管理系统修改密码。具体操作,请参见修改用户密码

    password

    database

    需要连接的数据库名称。默认连接default数据库。

    connectTimeout

    连接超时时间。单位为毫秒(ms),默认值为10000。

  4. 创建连接,通过宽表SQL语法使用Lindorm宽表引擎。以查询所有数据库为例。

    connection.connect(function(err) {
        if (err) {
            throw err;
        }
        console.log("Connection established.");
    
      connection.query('show databases', function(err1, results, fields) {
            if (err1) {
                throw err1;
            }
            console.log(fields)
            console.log(results)
        });
    
        connection.end(function(err2) {
            if (err2) {
                throw err2;
            }
            console.log("Connection closed.");
        });
    });

完整示例

完整示例代码如下:

var mysql = require('mysql2');
var connection = mysql.createConnection({
    //Lindorm宽表引擎的MySQL兼容地址
      host: 'ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com',
    //Lindorm宽表引擎MySQL协议的端口,固定为33060
      port: 33060,
    //Lindorm宽表引擎的用户名
      user: 'user',
    //Lindorm宽表引擎的密码
      password: 'test',
    //需要连接的数据库名称
      database: 'default ',
    //建立连接的超时时间,默认10000毫秒
      connectTimeout: 10000
});

connection.connect(function(err) {
    if (err) {
        throw err;
    }
    console.log("Connection established.");

  connection.query('show databases', function(err1, results, fields) {
        if (err1) {
            throw err1;
        }
        console.log(fields)
        console.log(results)
    });

    connection.end(function(err2) {
        if (err2) {
            throw err2;
        }
        console.log("Connection closed.");
    });
});

如果当前实例仅有default一个数据库,执行成功后将返回如下结果:

Connection established.
Connection closed.
[ `DATABASE` VARCHAR(0) ]
[ { DATABASE: 'default' }, { DATABASE: 'information_schema' } ]