Salut,
Je voudrais définir sql_mode
sur NO_ENGINE_SUBSTITUTION
afin de contourner la valeur par défaut strict mode
dans le serveur MySQL v5.7.x
On peut vérifier la variable sql_mode
MySQL en tapant SHOW VARIABLES LIKE 'sql_mode';
depuis la console client 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
Ma solution de contournement actuelle était de modifier la section mysqld dans le fichier /etc/mysql/my.cnf :
sql_mode='NO_ENGINE_SUBSTITUTION'
Je voudrais le garder au niveau de l'application Web plutôt qu'au niveau du serveur DB. Tous les conseils appréciés.
Merci!
Salut @ rhys-vdw,
Je ne sais pas si c'est le moyen officiel d'obtenir le résultat mentionné ci-dessus, mais le remplacement de la fonction afterCreate
dans la section pool
des paramètres de connexion fait l'affaire pour moi. Voici la source:
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);
});
}
}
}
Meilleures salutations,
Luca
Merci @lanceschi , je n'ai pas répondu car je n'avais aucune idée de la solution. Je me demande s'il vaudrait la peine d'ajouter quelque chose à propos de ce rappel à la FAQ?
Le rappel est documenté, fermeture
Commentaire le plus utile
Salut @ rhys-vdw,
Je ne sais pas si c'est le moyen officiel d'obtenir le résultat mentionné ci-dessus, mais le remplacement de la fonction
afterCreate
dans la sectionpool
des paramètres de connexion fait l'affaire pour moi. Voici la source:Meilleures salutations,
Luca