Mysql строка подключения utf8mb4 (Node.js, без сервера - mysql пакет) - PullRequest
1 голос
/ 28 апреля 2020

Я изменил свои Mysql значения по умолчанию на utf8mb4, однако эмоджи по-прежнему отклоняются mysql.

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

Я думаю, это может быть из-за моей строки подключения.

Я подключаюсь и отправляю запросы на Mysql с пакетом serverless- mysql, который основан на пакете mysql .

Я думаю, что я должен быть в состоянии создать соединение следующим образом:

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

Однако я не совсем уверен, какой должна быть моя строка соединения для поддержки utf8mb4 и возможность сохранить смайлики в моей базе данных. Как должна выглядеть моя строка?

1 Ответ

1 голос
/ 28 апреля 2020

Оказывается, сам пакет поддерживает добавление настроек для charset. Поэтому я изменил свою конфигурацию на:

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 без ошибок.

...