أهلا،
أرغب في تعيين sql_mode
على NO_ENGINE_SUBSTITUTION
لتجاوز الافتراضي strict mode
في خادم MySQL v5.7.x
يمكن للمرء التحقق من متغير MySQL sql_mode
خلال كتابة SHOW VARIABLES LIKE '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
كان الحل الحالي هو تعديل قسم mysqld في ملف /etc/mysql/my.cnf :
sql_mode='NO_ENGINE_SUBSTITUTION'
أود الاحتفاظ بها على مستوى تطبيق الويب بدلاً من مستوى خادم قاعدة البيانات. أي نصائح موضع تقدير.
شكرا!
مرحبًا @ rhys-vdw ،
أنا لا أعرف إذا كان هذا هو الطريقة الرسمية لتحقيق النتيجة المشار إليها أعلاه، ومع ذلك تجاوز على afterCreate
وظيفة في pool
قسم من إعدادات الاتصال لا حيلة لي. هذا هو المصدر:
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 ،
أنا لا أعرف إذا كان هذا هو الطريقة الرسمية لتحقيق النتيجة المشار إليها أعلاه، ومع ذلك تجاوز على
afterCreate
وظيفة فيpool
قسم من إعدادات الاتصال لا حيلة لي. هذا هو المصدر:مع أطيب التحيات،
لوكا