Hola,
Me gustaría establecer sql_mode
en NO_ENGINE_SUBSTITUTION
para omitir el strict mode
predeterminado en el servidor MySQL v5.7.x
Uno puede verificar la variable sql_mode
MySQL escribiendo SHOW VARIABLES LIKE 'sql_mode';
desde la consola del 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
Mi solución actual fue modificar la sección mysqld en el archivo /etc/mysql/my.cnf :
sql_mode='NO_ENGINE_SUBSTITUTION'
Sin embargo, me gustaría mantenerlo en el nivel de la aplicación web en lugar del nivel del servidor de base de datos. Cualquier consejo apreciado.
¡Gracias!
Hola @ rhys-vdw,
No sé si es la forma oficial de lograr el resultado mencionado anteriormente, sin embargo, anular la función afterCreate
en la sección pool
de la configuración de conexión funciona. Aquí está la fuente:
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);
});
}
}
}
Atentamente,
Luca
Gracias @lanceschi , no respondí porque no tenía idea de cuál es la solución. Me pregunto si valdría la pena agregar algo sobre esta devolución de llamada a las preguntas frecuentes.
La devolución de llamada está documentada, cerrando
Comentario más útil
Hola @ rhys-vdw,
No sé si es la forma oficial de lograr el resultado mencionado anteriormente, sin embargo, anular la función
afterCreate
en la secciónpool
de la configuración de conexión funciona. Aquí está la fuente:Atentamente,
Luca