如何将字符集添加到 Knex.js 连接字符串?
Posted
技术标签:
【中文标题】如何将字符集添加到 Knex.js 连接字符串?【英文标题】:How do I add charset to Knex.js connection string? 【发布时间】:2016-11-29 14:06:10 【问题描述】:我正在使用 Knex.js 进行数据库连接。我想使用连接字符串而不是连接对象来连接数据库,并且能够指定charset
。
例子:
connection: 'mysql://root:secret@127.0.0.1:3306/test-db'
不是
connection:
host : '127.0.0.1',
user : 'root',
password : 'secret',
database : 'test-db',
charset : 'utf8'
我的连接字符串正常工作。
有人可以解释我如何在 Knex.js 连接字符串中指定 charset
吗?
【问题讨论】:
Gadzooks!,又一个第 3 方包!如果想不通,连接后立即执行SET NAMES utf8
;这通常是一个有效的后备。
knex 文档说它将连接字符串直接传递给底层驱动程序:knexjs.org/#Installation-client。如果是这样,底层驱动程序可能不会显示预期的行为:github.com/mysqljs/mysql#establishing-connections。我只是猜测,但可能值得一试。
谢谢,这很有帮助。文档显示了下面看起来很有希望的连接字符串:connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');
【参考方案1】:
试试:
connection: 'mysql://root:secret@127.0.0.1:3306/test-db?charset=utf8mb4'
请参阅此处所述的连接字符串选项:https://github.com/mysqljs/mysql#connection-options
【讨论】:
以上是关于如何将字符集添加到 Knex.js 连接字符串?的主要内容,如果未能解决你的问题,请参考以下文章