মাইএসকিএল 5.7 কড়া মোডে ফিরে আসার সঠিক উপায়টি কীভাবে 5.6-এ ছিল?


10

আমি আমাদের সার্ভারকে উবুন্টু 16 এ আপগ্রেড করেছি যার মধ্যে মাইএসকিএল 5.7 রয়েছে এবং ডিফল্টরূপে স্ট্রিক মোড সক্ষম করা হয়েছে (যদিও এটির জন্য কোনও কনফিগারেশন ফাইলে কোনও প্রবেশ নেই)।

আমাদের মধ্যে ডেটাবেসগুলি আমদানি করতে সমস্যা হচ্ছে যা mysql 5.6 এর অধীনে এবং তার আগেও ছিল এবং এটি কঠোর মোডের কারণে। ডিফল্টরূপে, যা সক্ষম তা এখানে:

STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY

5.1-তে যেমন হয়েছে ঠিক তেমন কাজ করতে আমি কীভাবে mysql 5.7 কনফিগার করতে পারি বা 5.6 থেকে ডাটাবেসগুলি 5.7 এর সাথে সামঞ্জস্যপূর্ণ?


এই উত্তরটি ব্যবহার করে দেখুন: stackoverflow.com/a/34426883/534883 ইভেন্টটি যদিও এটি ওএসএক্সের জন্য হলেও এটি উবুন্টুতে আমার পক্ষে কাজ করেছে।
পিট

উত্তর:


34

কঠোর এসকিউএল মোড অক্ষম করতে আপনার সার্ভারে এসএসএইচ হিসাবে প্রবেশ করুন rootএবং এই ফাইলটি তৈরি করুন:

/etc/mysql/conf.d/disable_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

এই কমান্ডটি দিয়ে মাইএসকিউএল পুনরায় চালু করুন:

sudo service mysql restart

এই পরিবর্তনটি দুটি এসকিউএল মোড সেটিংস অক্ষম করে STRICT_TRANS_TABLESএবং ONLY_FULL_GROUP_BYএটি মাইএসকিউএল 5.7-এ যুক্ত হয়েছিল এবং কিছু পুরানো অ্যাপ্লিকেশনগুলির জন্য সমস্যা সৃষ্টি করে।

স্ট্রাইক এসকিউএল মোড অক্ষম করা হয়েছে তা নিশ্চিত করা

আপনি নিশ্চিত করতে পারেন যে এই কমান্ডটি চালিয়ে কঠোর এসকিউএল মোড অক্ষম করা আছে root:

 sudo mysql -i -BN -e 'SELECT @@sql_mode' | grep -E 'ONLY_FULL_GROUP_BY|STRICT_TRANS_TABLES'

যদি কঠোর মোড অক্ষম করা থাকে তবে আপনি এই আদেশটি থেকে কোনও আউটপুট দেখতে পাবেন না।

যদি কড়া মোড অক্ষম করা আপনার জন্য কোনও সমস্যার কারণ হয়ে থাকে, আপনি সেই ফাইলটি মুছে ফেলা এবং আবার মাইএসকিউএল পুনরায় চালু করে এটি সক্ষম করতে পারেন।

উত্স: মাইএসকিউএল 5.7-তে কীভাবে কঠোর এসকিউএল মোড অক্ষম করবেন


2
এটি একটি সঠিক উত্তর এবং এটি গ্রহণযোগ্য হিসাবে চিহ্নিত করা উচিত ছিল।
বুধাজিভা

কেন কমান্ড মাইএসকিউএল কমান্ড আয় চলমান না: mysql: [ERROR] Found option without preceding group in config file /etc/mysql/conf.d/disable_strict_mode.cnf at line 1!?
অভিষেক সায়নী

1
@ অভিষেকসাইনি, এই এবং এই একবার দেখুন
বিলাল

1
এটি একটি উত্তর। একটি উত্তর হিসাবে এটি উল্লেখ করুন।
লসিঠা বেনারগামা

0

সেট sql_modeমধ্যে /etc/mysql/mysql.conf.d/mysqld.cnfছাড়া STRICT_TRANS_TABLES

এর অধীনে যুক্ত করুন [mysqld]:

sql_mode = NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.