একটি বড় ডাম্প ফাইল আমদানির চেষ্টা করার সময় "মাইএসকিউএল সার্ভার চলে গেছে"


11

আমি একটি মাইএসকিউএল ডাম্প ফাইল আমদানি করার চেষ্টা করছি।

ফাইলটি একটি লিনাক্স সার্ভারে তৈরি করা হয়েছিল, আমি উইন্ডোতে আমদানি করার চেষ্টা করছি

আমি কমান্ড লাইনে লগইন করে দৌড়েছি:

SOURCE c:/dump.sql

তবে মনে হচ্ছে এটি কিছু চরিত্র সেট সমস্যাগুলি (বিশেষত স্মার্ট কোটস এবং অন্যান্য অ-স্ট্যান্ডার্ড বিরামচিহ্নের সাহায্যে) ফেলে দিয়েছে।

আমাকে চালানোর পরামর্শ দেওয়া হয়েছিল:

mysql -u username -d dbase < c:\dump.sql

আমি এটি চেষ্টা করার সময় আমি ত্রুটি পেয়েছি

ERROR 2006 (HY000) at line 149351: MySQL server has gone away

কিছুটা গুগলিং পরামর্শ দিয়েছে যে এটি সর্বোচ্চ_বিহীন_প্যাকেট সুইচটি করার জন্য ছিল তবে আমি এটি চেষ্টা করেছি এবং এটি কার্যকর হয়নি। কারও কি ধারণা আছে যে এটি কী হতে পারে?

কারওর কাছে চরিত্র সেট ইস্যু সম্পর্কে কোনও পরামর্শ থাকলে তাও সহায়ক।


কোন মন্তব্য? [মন্তব্য করতে 15 টি
চরিত্রের

উত্তর:


23

প্রশ্ন শিরোনামে ত্রুটি বার্তাটি পড়ার পরে আমার প্রথম প্রবৃত্তিটি ম্যাক্স_গ্ল্যাড_প্যাককেট বাড়ানোর পরামর্শ দেওয়া হয়েছিল। আপনি উল্লেখ করেছেন যে আপনি এটি "সেই সুইচ" ব্যবহার করে দেখেছেন এবং এটি কার্যকর হয়নি hasn't আপনি কি সার্ভারের কনফিগারেশন ফাইলটি সঠিকভাবে সংশোধন করেছেন তা নিশ্চিত করতে পারবেন? আপনার ফরাসিংটি এটিকে শোনায় যেমন আপনি mysql.exe ক্লায়েন্ট কমান্ড লাইনে একটি কমান্ড লাইন স্যুইচ হিসাবে ব্যবহার করার চেষ্টা করেছেন যা সার্ভারকে আচরণ পরিবর্তন করতে না পারে।

সুতরাং, সংক্ষেপে, আপনার সার্ভারের বর্তমানে ব্যবহৃত মাই.সিএনএফ ফাইলটি সন্ধান এবং সম্পাদনা করার জন্য আপনার যা করার চেষ্টা করা উচিত। ইন [mysqld]অধ্যায় ভালো কিছু করার জন্য max_allowed_packet সেটিংস পরিবর্তন

[mysqld]
max_allowed_packet=32M

কনফিগারেশন পরিবর্তন করার পরে সার্ভার পুনরায় চালু করতে ভুলবেন না।

আমি উদাহরণ হিসাবে 32M (একটি হাস্যকরভাবে বড় মান) ব্যবহার করেছি। যেহেতু আপনার ক্যোয়ারীটি উদ্বেগজনক বলে মনে হচ্ছে আপনার এই মানটি (বা সম্ভবত আপনার যথেষ্ট পরিমাণ র্যাম পেয়েছে এমনকি M৪ এম এমনকি) এটি ব্যবহার করে কিনা তা দেখতে চেষ্টা করা উচিত।

অন্য বিকল্পটি হ'ল সার্ভারটি যেমন রয়েছে তেমন ছেড়ে দেওয়া এবং এসকিউএল ডাম্প তৈরি করতে ব্যবহৃত ক্লায়েন্টের আচরণ পরিবর্তন করে। পৃথক প্রশ্নের আকার 1 এমবি এর নীচে সীমাবদ্ধ করতে বলুন - এটিও কৌশলটি করা উচিত।

আরও তথ্যের জন্য, দেখুন B.1.2.10। মাইএসকিউএল ম্যানুয়ালটিতে প্যাকেটটি খুব বড়


1
হ্যাঁ আমি কমান্ড লাইন সুইচটি চেষ্টা করছিলাম। যে কারণে আমি এটির একটি প্রভাব ফেলেছি তা ভেবেছিল যে এটি যখন কোনও ছোট কিছুতে সেট করা হয় তখন এটি একটি সর্বাধিক অনুমোদিত প্যাকেটটিকে খুব ছোট ত্রুটি দেয়। আমি সোমবার আপনার পরামর্শ চেষ্টা করব। ধন্যবাদ
জেরেমি ফরাসী

আপনি স্বাগত - আমি প্রায় নিশ্চিত এটি কাজ করবে। দুর্ভাগ্যক্রমে, গত 50 বা তত বছরে লিখিত অনেকগুলি (ঠিক আছে, বেশিরভাগ) এর মতো, মাইএসকিউএল এর ত্রুটি বার্তাগুলি স্তন্যপান করে এবং বিভ্রান্তিকর হয়ে থাকে যদি আপনি বিকাশকারীর মন যেভাবে কাজ করে তার সাথে ইতিমধ্যে পরিচিত না হন :)।
মিহাই লিম্বান

শুনে খুশি হলাম - মজা করুন।
মিহাই লিম্বান

খুব খুব দুর্দান্ত। আমারও একই সমস্যা ছিল, প্রশ্ন জিজ্ঞাসা করতে এসে এখানে এসেছিল বাম! সমাধান। @ মিহাই - আপনি যা কিছু বেতন পান; এটি পর্যাপ্ত নয় :)
স্টিভেন ইভার্স

লোকালহোস্ট থেকে রিমোট সার্ভারে আমাদের মাইএসকিউএল সরানোর পরে যখন আমরা এই ত্রুটি পেয়েছি তখন এই সমাধানটি আমাদের সহায়তা করে। আপনাকে অনেক ধন্যবাদ!
লিয়া কোহেন

1

মাইএসকিউএল 5.7.24 এ, এটি মাইএসকিউএল 5.6 থেকে পুরানো কনফিগারেশনের কারণে হয়েছিল

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION. 

এসকিউএল সংস্করণটি 5.7.5 বা তার বেশি হলে নীচের বিকল্পটি বাধ্যতামূলক।

sql_mode=TRADITIONAL

এছাড়াও দুই max_allowed_packet পরামিতি আছে /etc/my.cnf মধ্যে, অন্য এক mysqldump জন্য। একই নোট নিন।

max_allowed_packet = <1G>

আমার ইনস্টলেশন CentOS7 এ রয়েছে।


0

আপনি কি লিনাক্স বাক্স থেকে উইন্ডোজ সার্ভারে মাইএসকিউএল উদাহরণটি অ্যাক্সেস করতে সক্ষম?

যদি তা হয় তবে উইন্ডোজ বাক্সে সার্ভারের সাথে সংযোগ করার জন্য -h সুইচ দিয়ে আপনি লিনাক্স বাক্সে কমান্ডটি চালাতে পারবেন ?

mysql -u username -d dbase -h <windows host> < dump.sql

এটি আপনার অক্ষর সেট সমস্যাগুলি সমাধান করতে পারে , যেহেতু আপনি আমদানি করতে মূল বাক্সে লিনাক্স ক্লায়েন্ট ব্যবহার করছেন। (শুধু অনুমান)


0

মাইএসকিউএল লগটি কী বলে?

কখনও কখনও সার্ভারে একটি সংশোধনযোগ্য ত্রুটি থাকলে ক্লায়েন্টকে এই ত্রুটিটি প্রতিবেদন করা হয়। এটি ডাটাবেস সারণীর অন ডিস্ক দুর্নীতির সূচক হতে পারে।


-1

আপনার অ্যাকাউন্টে একটি পাসওয়ার্ড আছে? সম্ভবত আপনাকে -p সুইচ যুক্ত করতে হবে:

mysql -u username -p -d dbase < c:\dump.sql

ওহ - সম্ভবত না, যেহেতু মনে হচ্ছে এটি আমদানিতে কোনওভাবে ব্যর্থ হয়েছে।
ব্রেন্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.