Oi,
gostaria de definir sql_mode
para NO_ENGINE_SUBSTITUTION
para ignorar o strict mode
padrão no servidor MySQL v5.7.x
Pode-se verificar a variável sql_mode
MySQL digitando SHOW VARIABLES LIKE 'sql_mode';
no console do cliente 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
Minha solução atual era modificar a seção mysqld no arquivo /etc/mysql/my.cnf :
sql_mode='NO_ENGINE_SUBSTITUTION'
Eu gostaria de mantê-lo no nível de aplicativo da web, em vez de no nível do servidor de banco de dados. Todos os conselhos são apreciados.
Obrigado!
Olá @ rhys-vdw,
Não sei se é a maneira oficial de obter o resultado mencionado acima, no entanto, substituir a função afterCreate
na seção pool
das configurações de conexão resolve o problema para mim. Aqui está a fonte:
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);
});
}
}
}
Atenciosamente,
Luca
Obrigado @lanceschi , não respondi porque não tinha ideia de qual seria a solução. Eu me pergunto se valeria a pena acrescentar algo sobre este retorno de chamada ao FAQ?
O retorno de chamada é documentado, fechando
Comentários muito úteis
Olá @ rhys-vdw,
Não sei se é a maneira oficial de obter o resultado mencionado acima, no entanto, substituir a função
afterCreate
na seçãopool
das configurações de conexão resolve o problema para mim. Aqui está a fonte:Atenciosamente,
Luca