Skip to main content

createConnection

信息

有关查询,请参阅 简单查询准备好的语句 示例。

¥For queries please see the Simple Queries and Prepared Statements examples.

createConnection(connectionUri)

createConnection(connectionUri: string)

import mysql from 'mysql2/promise';

try {
const connection = await mysql.createConnection(
'mysql://root:password@localhost:3306/test'
);
} catch (err) {
console.log(err);
}

createConnection(config)

createConnection(config: ConnectionOptions)

import mysql from 'mysql2/promise';

try {
const connection = await mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test',
// port: 3306,
// password: '',
});
} catch (err) {
console.log(err);
}

createConnection(config) — SHA1

createConnection(config: ConnectionOptions)

import mysql from 'mysql2/promise';

try {
const connection = await mysql.createConnection({
// ...
passwordSha1: Buffer.from(
'8bb6118f8fd6935ad0876a3be34a717d32708ffd',
'hex'
),
});
} catch (err) {
console.log(err);
}

createConnection(config) — SSL

createConnection(config: ConnectionOptions)

import mysql from 'mysql2/promise';

try {
const connection = await mysql.createConnection({
// ...
ssl: {
// key: fs.readFileSync('./certs/client-key.pem'),
// cert: fs.readFileSync('./certs/client-cert.pem')
ca: fs.readFileSync('./certs/ca-cert.pem'),
},
});
} catch (err) {
console.log(err);
}

createConnection(config) — RDS SSL

createConnection(config: ConnectionOptions)

你可以使用 Amazon RDS 字符串作为 ssl 属性的值,通过 SSL 连接到 Amazon RDS MySQL。

¥You can use Amazon RDS string as value to ssl property to connect to Amazon RDS MySQL over SSL.

在这种情况下,使用 https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem CA 证书:

¥In that case https://s3.amazonaws.com/rds-downloads/mysql-ssl-ca-cert.pem CA cert is used:

npm install --save aws-ssl-profiles
import mysql from 'mysql2/promise';
import awsCaBundle from 'aws-ssl-profiles';

try {
const connection = await mysql.createConnection({
// ...
host: 'db.id.ap-southeast-2.rds.amazonaws.com',
ssl: awsCaBundle,
});
} catch (err) {
console.log(err);
}
信息

有关详细说明,请遵循 AWS SSL 配置文件文档

¥For detailed instructions, please follow the AWS SSL Profiles documentation.

测试
try {
const [res] = await connection.query('SHOW `status` LIKE "Ssl_cipher"');
await connection.end();

console.log(res);
} catch (err) {
console.log(err);
}

createConnection(config) — Socks

createConnection(config: ConnectionOptions)

const mysql = require('mysql2');
const SocksConnection = require('socksjs');

const socksProxy = new SocksConnection({ port: 3306 });
const connection = mysql.createConnection({
stream: socksProxy,
});

connection.addListener('error', (err) => {
console.log(err);
});
测试
connection.execute('SELECT SLEEP(1.1) AS `www`', (err, rows, fields) => {
if (err instanceof Error) {
console.log(err);
return;
}

console.log(rows, fields);
});

connection.execute('SELECT SLEEP(1) AS `qqq`', (err, rows, fields) => {
if (err instanceof Error) {
console.log(err);
return;
}

console.log(rows, fields);
});

connection.execute('SELECT SLEEP(1) AS `qqq`', (err, rows, fields) => {
if (err instanceof Error) {
console.log(err);
return;
}

console.log(rows, fields);
});

词汇表

¥Glossary

ConnectionOptions

ConnectionOptions Specification