こんにちは、
MySQLサーバーv5.7.xのデフォルトのstrict mode
をバイパスするために、 sql_mode
をNO_ENGINE_SUBSTITUTION
に設定したいと思います。
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'
ただし、DBサーバーレベルではなく、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に感謝します。解決策がわからなかったため、
コールバックが文書化され、終了
最も参考になるコメント
こんにちは@ rhys-vdw、
上記の結果を達成するための公式の方法かどうかはわかりませんが、接続設定の
pool
セクションでafterCreate
関数をオーバーライドすることでうまくいきます。 ソースは次のとおりです。宜しくお願いします、
ルカ