Nodejs-Mysql连接参数

Nodejs-Mysql连接参数

    要想创建一个数据库连接,先就要认识清楚Options

host:主机地址 (默认:localhost)

user:用户名

password:密码

port:端口号 (默认:3306)

database:数据库名

charset:连接字符集(默认:‘UTF8_GENERAL_CI’,注意字符集的字母都要大写)

localAddress:此IP用于TCP连接(可选)

socketPath:连接到unix域路径,当使用 host 和 port 时会被忽略

timezone:时区(默认:‘local’)

connectTimeout:连接超时(默认:不限制;单位:毫秒)

stringifyObjects:是否序列化对象(默认:‘false’ ;与安全相关https://github.com/felixge/node-mysql/issues/501)

typeCast:是否将列值转化为本地JavaScript类型值 (默认:true)

queryFormat:自定义query语句格式化方法 https://github.com/felixge/node-mysql#custom-format

supportBigNumbers:数据库支持bigint或decimal类型列时,需要设此option为true (默认:false)

bigNumberStrings:supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false)

dateStrings:强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)

debug:开启调试(默认:false)

multipleStatements:是否许一个query中有多个MySQL语句 (默认:false)

flags:用于修改连接标志,更多详情:https://github.com/felixge/node-mysql#connection-flags

ssl:使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件


3 回复

Node.js - Mysql 连接参数

在使用 Node.js 连接 MySQL 数据库时,我们需要了解并设置一些重要的连接参数。这些参数帮助我们建立与数据库的有效连接,并确保数据传输的安全性和正确性。

常见连接参数

以下是一些常用的连接参数及其默认值:

{
  host: 'localhost', // 主机地址,默认为 localhost
  user: 'your_username', // 用户名
  password: 'your_password', // 密码
  port: 3306, // 端口号,默认为 3306
  database: 'your_database_name', // 数据库名
  charset: 'UTF8_GENERAL_CI', // 连接字符集,默认为 UTF8_GENERAL_CI
  localAddress: null, // 此 IP 用于 TCP 连接(可选)
  socketPath: null, // 连接到 unix 域路径,当使用 host 和 port 时会被忽略
  timezone: 'local', // 时区,默认为 local
  connectTimeout: 0, // 连接超时,默认不限制(单位:毫秒)
  stringifyObjects: false, // 是否序列化对象,默认为 false
  typeCast: true, // 是否将列值转化为本地 JavaScript 类型值,默认为 true
  queryFormat: null, // 自定义 query 语句格式化方法
  supportBigNumbers: false, // 数据库支持 bigint 或 decimal 类型列时,需要设此选项为 true,默认为 false
  bigNumberStrings: false, // supportBigNumbers 和 bigNumberStrings 启用时,强制 bigint 或 decimal 列以 JavaScript 字符串类型返回,默认为 false
  dateStrings: false, // 强制 timestamp, datetime, data 类型以字符串类型返回,而不是 JavaScript Date 类型,默认为 false
  debug: false, // 开启调试,默认为 false
  multipleStatements: false, // 是否允许一个 query 中有多个 MySQL 语句,默认为 false
  flags: '', // 用于修改连接标志,详情参见文档
  ssl: null // 使用 ssl 参数(与 crypto.createCredentials 参数格式一致)或一个包含 ssl 配置文件名称的字符串
}

示例代码

以下是一个简单的示例代码,展示如何使用上述参数来连接 MySQL 数据库:

const mysql = require('mysql');

// 创建连接配置对象
const connectionConfig = {
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'testdb',
  charset: 'UTF8_GENERAL_CI',
  timezone: 'local'
};

// 创建数据库连接
const connection = mysql.createConnection(connectionConfig);

// 连接数据库
connection.connect((err) => {
  if (err) {
    console.error('Error connecting to the database:', err);
    return;
  }
  console.log('Connected to the database!');
});

// 执行查询
connection.query('SELECT * FROM users', (error, results, fields) => {
  if (error) throw error;
  console.log('Query results:', results);
});

// 关闭连接
connection.end();

通过上述代码,你可以看到如何设置连接参数并执行基本的查询操作。希望这能帮助你更好地理解和使用 Node.js 连接 MySQL 数据库的相关参数。


connectTimeout: The milliseconds before a timeout occurs during the initial connection to the MySQL server. (Default: 10 seconds)——连接超时默认是10秒(mysql@2.4.2)

为了连接到MySQL数据库,你可以使用mysql模块。以下是创建连接的基本示例,并解释了如何使用上述提到的选项。

示例代码

首先,确保你已经安装了mysql模块:

npm install mysql

然后,你可以使用以下代码来创建数据库连接:

const mysql = require('mysql');

// 创建连接
const connection = mysql.createConnection({
    host: 'localhost',          // 主机地址
    user: 'your_username',      // 用户名
    password: 'your_password',   // 密码
    database: 'your_database',   // 数据库名
    port: 3306,                 // 端口号
    charset: 'UTF8_GENERAL_CI', // 字符集
    timezone: 'local',          // 时区
    connectTimeout: 10000       // 连接超时时间(毫秒)
});

// 连接到数据库
connection.connect((err) => {
    if (err) {
        console.error('Error connecting to database:', err);
        return;
    }
    console.log('Connected to the database!');
    
    // 执行SQL查询或其他操作
    
    // 关闭连接
    connection.end();
});

解释

  1. host:指定MySQL服务器的地址,默认为localhost
  2. user:登录数据库的用户名。
  3. password:用户的密码。
  4. database:要连接的数据库名称。
  5. port:MySQL服务器的端口,默认是3306。
  6. charset:指定字符集,例如UTF8_GENERAL_CI
  7. timezone:指定连接的时区,默认为local
  8. connectTimeout:连接超时时间,单位为毫秒,默认不限制。

通过这种方式,你可以根据需求调整不同的选项,以满足你的具体应用场景。

回到顶部