حالت Strict mode، نحوه برخورد MySQL با مقادیر نامعتبر یا از دست رفته را در هنگام اجرای کوئریهای تغییر دادهها مانند INSERT یا UPDATE کنترل میکند. بهعنوانمثال، حالت Strict mode، درصورت وجود عملیات تقسیم بر صفر خطایی ایجاد میکند. همچنین تاریخ "0000-00-00" را مجاز نمیداند و خطایی ایجاد مینماید.
این آموزش، به شما در غیرفعالسازی حالت strict SQL در سرور MySQL 5.7 یا نسخههای بعدی کمک خواهد کرد.
این مطلب نیز ممکن است برای شما مفید باشد: نکات مفید برای رفع خطاهای رایج در MySQL
غیرفعالسازی حالت strict SQL
شما میتوانید با ویرایش فایل mysqld.cnf روی سرور خود، حالت strict SQL را غیرفعال نمایید. اما در اینجا، یک فایل پیکربندی جداگانه برای این منظور در سرور MySQL ایجاد میکنیم.
$ sudo vim /etc/mysql/conf.d/disable_mysql_strict_mode.cnf
محتوای زیر را در فایل اضافه کرده و آن را ذخیره نمایید.
[mysqld]
sql_mode="IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
اکنون سرویس MySQL را مجدداً راهاندازی کنید تا تغییرات اعمال شود.
$ sudo systemctl restart mysql.service
این مطلب نیز ممکن است برای شما مفید باشد: فعال سازی دسترسی از راه دور به سرور پایگاه داده MySQL
تأیید حالت SQL
برای یافتن مقادیر متغیرهای sql_mode، به کنسول MySQL وارد شده و کوئری زیر را اجرا نمایید.
mysql> SELECT @@sql_mode;
نتیجههایی مانند تصویر زیر را مشاهده خواهید کرد. خروجی را به دقت جستجو کرده و اطمینان حاصل نمایید که عبارت ONLY_FULL_GROUP_BY و STRICT_TRANS_TABLES در آن وجود نداشته باشد.
منبع:
0 دیدگاه
نوشتن دیدگاه