你好,
我想将sql_mode
为NO_ENGINE_SUBSTITUTION
,以绕过MySQL服务器v5.7.x中的默认strict mode
可以通过在MySQL客户端控制台中键入SHOW VARIABLES LIKE 'sql_mode';
来检查sql_mode
MySQL变量。
NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
我当前的解决方法是修改/etc/mysql/my.cnf文件中的mysqld部分:
sql_mode='NO_ENGINE_SUBSTITUTION'
我想将其保留在Web应用程序级别而不是数据库服务器级别。 任何建议表示赞赏。
谢谢!
嗨@ rhys-vdw,
我不知道这是否是获得上述结果的官方方法,但是在连接设置的pool
部分中重写afterCreate
函数对我来说却是个窍门。 来源:
dbase: {
client: 'mysql',
connection: {
socketPath: '/var/run/mysqld/mysqld.sock',
database : 'db_name',
user: 'db_username',
password : 'db_password',
timezone: 'UTC',
charset: 'utf8mb4_unicode_ci',
supportBigNumbers:true
},
pool: {
min: 2,
max: 10,
afterCreate: function(conn, cb) {
conn.query('SET sql_mode="NO_ENGINE_SUBSTITUTION";', function (err) {
cb(err, conn);
});
}
}
}
此致,
路卡
感谢@lanceschi ,我没有回应,因为我不知道解决方案是什么。 我想知道是否应该在FAQ中添加有关此回调的信息?
回调已记录,正在关闭
最有用的评论
嗨@ rhys-vdw,
我不知道这是否是获得上述结果的官方方法,但是在连接设置的
pool
部分中重写afterCreate
函数对我来说却是个窍门。 来源:此致,
路卡