Mysql utf8mb4 连接字符串(Node.js,serverless-mysql 包)

Mysql utf8mb4 connection string (Node.js, serverless-mysql package)

我已经将我的 Mysql 默认设置更改为 utf8mb4,但是表情符号仍然被 mysql 拒绝。

Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x92\xA9</...'

我想这可能是因为我的连接字符串。

我正在使用 serverless-mysql package, which is based on the mysql package 连接并向 Mysql 发送查询。

我想我应该可以这样创建一个连接:

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

但是我不完全确定我的连接字符串应该是什么才能支持 utf8mb4 并能够将表情符号保存到我的数据库中。我的字符串应该是什么样的?

原来包本身支持添加字符集设置。所以我将配置更改为:

const db = mysql({
  config: {
    host: process.env.DB_HOST,
    database: process.env.DB_NAME,
    user: process.env.DB_USER,
    password: process.env.DB_PASS,
    charset: 'utf8mb4'
  }
});

我现在可以毫无错误地将表情符号发送到 Mysql。