【发布时间】: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');
标签: javascript mysql node.js utf-8 knex.js