বড় এসকিউএল ফাইল phpmyadmin আমদানি করা হচ্ছে


12

আমি এই এসকিউএল ফাইলটি phpmyadmin এ আমদানির চেষ্টা করছি এবং এই বার্তাটি পেয়েছি

#1064 - You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 
'<br /> <b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tr' at line 1

এই আমদানি করতে আমি কী করব?

উত্তর:


12

ধরে নিচ্ছি আপনি মেমরির আকার আরও বাড়িয়ে তুলতে পারবেন না তবে কয়েকটি বিকল্প রয়েছে।

  • আপনি যদি কমান্ড লাইনের সাথে পরিচিত না হন এবং আপনি যদি সত্যিই কোনও জিইউআই স্টাইল আমদানির সাথে লেগে থাকতে চান তবে আপনি বিগডাম্প ( http://www.ozerov.de/bigdump/ ) ব্যবহার করতে পারেন । আমি এটি একবার ব্যবহার করেছি তবে কিছুক্ষণ হয়ে গেছে। আমি যা মনে করি তা থেকে আপনি বিগডাম্প.এফপি নামে একটি ফাইল ডাউনলোড করবেন (কিছু নির্দেশাবলীর সাথে) এবং এটি মাইএসকিউএল ডিবি ডাম্প ফাইলের সাহায্যে ডিরেক্টরিতে আপনার ওয়েবসার্ভারে রেখে যা পিএইচপিএমওয়াইডমিনের মাধ্যমে আমদানি করার পক্ষে খুব বড় large তারপরে আপনার ব্রাউজারটি ব্যবহার করে এটিতে নেভিগেট করুন - http://your-website.com/bigdump.php এর মতো কিছু ।

  • আপনি যদি কমান্ড লাইনের সাথে পরিচিত হন এবং লিনাক্স ভিত্তিক সিস্টেম ব্যবহার করেন তবে আপনি এই জাতীয় কোড ব্যবহার করতে পারেন:

    mysql -u USERNAME -p DATABASENAME <FILENAME.sql

এই কমান্ডটি চালানোর আগে ডাটাবেস এবং ব্যবহারকারীর (ডাটাবেসের সুবিধাসহ) থাকা দরকার। দ্রষ্টব্য আমি উপরের কমান্ডটি অন্য উত্স থেকে অনুলিপি করেছি। আমি সবসময় আমার ডাম্পগুলি করি এবং এর মতো পুনরুদ্ধার করি: ডাম্প: mysqldump -u DB_USER -h DB_HOST -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz রিস্টোর:gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME

  • পরিশেষে, এবং সবচেয়ে বেদনাদায়ক, আপনি স্বতন্ত্র টেবিল বা টেবিলের গোষ্ঠীগুলিকে ছোট ছোট ডাম্পগুলিতে ফেলে দিতে বেছে নিতে পারেন। তারপরে PHPMYADMIN এর মাধ্যমে একবারে এই পৃথক ডাম্পগুলি পুনরুদ্ধার করুন।

এফটিপি এবং পুনরুদ্ধার নির্দেশাবলী:

এখানে ফাইলজিলা ডাউনলোড করুন: http://filezilla-project.org/download.php?type=client

সাধারণত আপনি এসএসএইচের জন্য একই লগইন এবং পাসওয়ার্ড ব্যবহার করে আপনার সার্ভারে (বিশেষত একটি ভাগ করা হোস্ট) এফটিপি করতে পারেন (আপনি লাইন লগইন কমান্ড করবেন)। আপনার সার্ভারের সাথে সংযোগটি সঠিকভাবে ফাইলজিলায় সেটআপ করার বিষয়টি নিশ্চিত করুন।

একবার সংযুক্ত হয়ে গেলে আপনার ডিফল্ট পাথটি সম্ভবত আপনার OME হোম ফোল্ডার (নিক্স মেশিনে) হবে। যদি আপনি প্রচুর এফটিপি করার পরিকল্পনা না করেন তবে সেখানে যা চান তা কেবল ডাম্প করুন। আপনি সর্বদা এটি কমান্ড লাইন থেকে সরাতে পারেন।

আপনি যদি নিজের folder হোম ফোল্ডারে কোনও মাইএসকিউএল ডাম্প এফটিপি করে থাকেন তবে মাইডিবি নামের ডিবি এবং মাইডিবি.এসকিএল.এলজেড নামক একটি ডিবি ডাম্প ফাইলের ($ হোম ফোল্ডারে) রিস্টোর কমান্ডটি হ'ল:

gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb

যেখানে আপনার অবশ্যই ডিবি-র জন্য কী ব্যবহারকারী এবং পাসওয়ার্ড সেটআপ করবেন সেই বিষয়ে DB_USER এবং DB_PASSWORD মান পরিবর্তন করতে হবে।

মনে রাখবেন:

  • রিস্টোর কমান্ড কার্যকর হওয়ার আগে অবশ্যই ডিবি অবশ্যই উপস্থিত থাকবে (তবে খালি থাকবে)
  • রিস্টোর কমান্ডের আগে অবশ্যই DB_USER এবং DB_PASSWORD অবশ্যই ডিবি-র জন্য সেটআপ করা উচিত (আপনি PHPMYADMIN - সুবিধাগুলি ট্যাব থেকে এটি করতে পারেন)
  • আপনি যখন PHPMYADMIN থেকে DB_USER সেট আপ করবেন তখন এটি ডিফল্ট হবে কেবলমাত্র DB_USER কে লোকালহোস্ট থেকে ডিবি অ্যাক্সেস করার অনুমতি দেবে (সার্ভারটি ডিবি হোস্ট করা আছে)। আমি ধরে নিচ্ছি আপনার পরিস্থিতি অনুদানের জন্য এটি ঠিক আছে। আপনি যখন আরও উন্নত ডাম্পগুলি এবং পুনরুদ্ধার করতে যান আপনি অন্য কোনও মেশিন থেকে এটি পুরোপুরি করতে চাইতে পারেন যা পুরোপুরি কঠিন নয় তবে আরও কয়েকটি সংখ্যক তথ্য সরবরাহ করা প্রয়োজন এবং যথাযথ সুযোগ-সুবিধা সহ DB_USER ER

ডিবি এফটিপি করুন এবং এটি পুনরুদ্ধার করুন ... ধাপে ধাপে

  1. আপনার ডেস্কটপে জিপড মাইএসকিউএল ডাম্প ফাইলটি সনাক্ত করুন (উদাহরণ: সি: \ ওয়েব \ ডিবি \ ডাম্পস \ mydb.sql.zip)
  2. ফাইলজিলা ডাউনলোড ও ইনস্টল করুন
  3. ফাইলজিলায় ফাইল-> সাইট ম্যানেজারে যান এবং নতুন সাইট বোতামে ক্লিক করুন (জিইউআইয়ের নীচে বাম কোয়াড্রেন্ট)। আপনার DESTINATION সার্ভারে থাকা ডোমেনে হোস্টটিকে একটি ডোমেনে সেট করুন (উদাহরণ: dest.com)। প্রোটোকল এফটিপি বা এসএফটিপিতে সেট করুন (এটি আপনার হোস্টিংয়ের উপর নির্ভর করে, তাদের জিজ্ঞাসা করুন)। ব্যবহারকারী এবং পাসওয়ার্ড সেট করুন (উদাহরণ: ব্যবহারকারী = অনুদান, পাসওয়ার্ড = অনুদানের পাসওয়ার্ড) - যদি এফটিপি প্রোটোকলটি এসএফটিপি হয় তবে বৈধ এসএসএইচ লগইন শংসাপত্রগুলির কোনও সেট কাজ করা উচিত।
  4. (ফাইলজিলায়) সংযোগ ক্লিক করুন (নীচে বামদিকে সর্বাধিক বোতাম)
  5. (ফাইলজিলায়) একবার রিমোট সার্ভারের সাথে সংযুক্ত হয়ে (আপনার DESTINATION সার্ভারটি হওয়া উচিত) আপনি যেখানে পদক্ষেপ 1 এ অবস্থিত ডাম্প ফাইলটি থাকেন সেই ডিরেক্টরিতে নেভিগেট করতে ফাইলজিলার বাম দিকটি ব্যবহার করুন। (লোকাল মেশিনের জন্য পথটি প্রায় বাম দিকে, প্রায় অর্ধেক নীচে এবং এটিতে স্থানীয় সাইট লেবেলযুক্ত রয়েছে।
  6. (ফাইলজিলায়) রিমোট সাইটটি সন্ধান করুন: স্থানীয় সাইটের ডানদিকে সরাসরি লেবেল করুন:।
  7. (ফাইলজিলায়) এমন কোনও প্রযুক্তিগত কারণ নেই যা আপনি ফোল্ডারে ডিবি ডিএমপি রাখতে পারবেন না ফাইলজিলা খোলে। এটি সম্ভবত আপনার OME হোম ডিরেক্টরিতে ডিফল্ট হবে। যদি আপনার নিজের কোনও সাংগঠনিক উদ্দেশ্যে - কোনও নির্দিষ্ট ডিরেক্টরিতে ডিবি ডাম্প রাখার কোনও কারণ না থাকে তবে রিমোট সাইটে একা পথ ছেড়ে যান। সেই পথটি লিখুন (লিনাক্স উদাহরণ: / usr / অনুদান)।
  8. (ফাইলজিলায়) স্থানীয় সাইটের নীচে প্রদর্শিত গাছের ঠিক নীচে ফাইলজিলার বাম অর্ধেক অংশে আপনার স্থানীয় মেশিনে ফাইলটি সন্ধান করুন: লেবেলটি আপনি ধাপে 5. পেয়েছেন found ফাইলটিতে ডাবল ক্লিক করুন এবং ফাইলজিলা এটি আপনার রিমোট সাইটে এফটিপি করবে।
  9. আপনার ডিস্টিনেশন সার্ভারে পিএইচপিএমওয়াইডমিনের মধ্যে একটি নতুন ডাটাবেস তৈরি করুন (নতুন ডাটাবেস পাঠ্যবক্সে মাইডিবি টাইপ করুন এবং তৈরি করুন বোতামটি ক্লিক করুন)।
  10. (পিএইচপিএমওয়্যাডমিনে) বাম দিকের মেনু থেকে Mydb চয়ন করুন।
  11. (পিএইচপিএমওয়্যাডমিনে) সুবিধাগুলি ট্যাবে ক্লিক করুন (উপরের ডানদিকে)। এই পৃষ্ঠায় একবার নতুন ব্যবহারকারী যুক্ত ক্লিক করুন।
  12. (পিএইচপিএমওয়াইডমিন-> সুবিধাগুলিতে-> নতুন ব্যবহারকারী যুক্ত করুন) একটি ব্যবহারকারীর নাম (উদাহরণ: mydb_grant) এবং পাসওয়ার্ড সরবরাহ করুন (উদাহরণ: mydb_password)। হোস্ট ড্রপডাউন স্থানীয় নির্বাচন করুন। "ডাটাবেসে সমস্ত সুযোগ সুবিধা দিন" এর পাশের রেডিও বোতামটি নির্বাচন করা আছে তা নিশ্চিত করুন। তারপরে Go (পর্দার নীচে ডানদিকে) ক্লিক করুন।
  13. আপনার ডিস্টিনেশন সার্ভারে এসএসএইচ।
  14. (আপনার এসএসএইচ টার্মিনালে) আপনার পদক্ষেপ in-এ যে ডিরেক্টরিটি লিখেছিল সেটিতে নেভিগেট করুন - cd $HOMEঅথবা - এর মতো একটি কমান্ড ব্যবহার করে cd /usr/grant। (লিনাক্স মেশিনে OME হোম হ'ল একটি পরিবেশের পরিবর্তনশীল যা / usr / अनुदानের মতো কোনও কিছুর সমান হবে))
  15. (আপনার এসএসএইচ টার্মিনালে) নিম্নলিখিত কমান্ডটি প্রয়োগ করুন: gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb(-p এবং পাসওয়ার্ডের মধ্যে কোনও স্থান নেই কারণ এটি এমনভাবে হওয়া দরকার, এটি কোনও টাইপ নয়)।

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

ডুম্প এবং এফটিপি ছাড়াই বিভিন্ন সার্ভারে পুনরুদ্ধার করুন

আপনি যদি এফটিপি জিনিসগুলি এড়িয়ে যেতে চান এবং ডাম্পটি আবার করাতে আপত্তি করেন না তবে আপনি এটি এইভাবে করতে পারেন:

  1. DESTINATION সার্ভারে লগইন করুন (যেখানে আপনি ডিবি বসবাস করতে চান - আমরা এটিকে গন্তব্য.কম বলব)
  2. DESTINATION সার্ভারে উপরে বর্ণিত হিসাবে ডিবি, ব্যবহারকারীর এবং যথাযথ সুবিধাগুলি তৈরি করুন
  3. নিশ্চিত করুন যে SOURCE সার্ভারে থাকা সুবিধাগুলি SOURCE_DB_USER কে দূর থেকে ডিবি অ্যাক্সেসের অনুমতি দেয় - ডেসটকম ডটকম থেকে বা% (% - প্রত্যেকে এবং সর্বত্রই যদি তাদের সঠিক ব্যবহারকারীর নাম এবং পাসওয়ার্ড থাকে) থেকে অ্যাক্সেসের অনুমতি দেয়
  4. DESTINATION সার্ভারে চালিত হন: mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gzযেখানে উত্স ডট কম হ'ল উত্স সার্ভার (যেখানে বর্তমানে ডিবি বাস করে)
  5. তারপরে (DESTINATION সার্ভারে) রান করুন: gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb

ডিবিটিকে একটি সার্ভার থেকে অন্য সার্ভারে সরানোর জন্য আপনার যা করা দরকার তা হওয়া উচিত। ক্যাভেটস হ'ল আমি কেবল নিজের উত্সর্গীকৃত উবুন্টু (স্ট্যান্ডার্ড এলএএমপি সহ) এবং ড্রিমহোস্টের ভিপিএস সার্ভারগুলিতে এটি করেছি (যা আমি বিশ্বাস করি সেন্টোস চালানো তবে আমি ভুল হতে পারি)।


3

আপনি পারেন:

  • বৃদ্ধি memory_limit
  • বৃদ্ধি post_max_size
  • বৃদ্ধি max_execution_time
  • এই সব করার পরে অবশ্যই অ্যাপাচি পুনরায় চালু করতে হবে।
  • বা বিগ ডাম্প ব্যবহার করুন

1

আপনার এসকিউএল ফাইলটি সংকুচিত? আমার 6MB জিপযুক্ত স্কিএল ফাইল নিয়ে এই সমস্যা ছিল। আমি এটি একটি 53MB সংকোচিত স্কুয়েল ফাইলে সঙ্কুচিত করেছি এবং এটি কার্যকর হয়েছে। প্রক্রিয়ায় ডাম্প ফাইলটি আনজিপিংয়ের সমস্ত স্মৃতি অবশ্যই খেয়ে ফেলবে।


0

আপনার যদি মাইএসকিএল সহ সার্ভারে ssh অ্যাক্সেস থাকে তবে আপনি কোনও জায়গায় mysql ডাম্পের সাথে ফাইল রাখতে পারলে, mysql কনসোলটি প্রবেশ করুন:

mysql -u myUser myDatabase

অথবা যদি মাইএসকিএল সার্ভার লোকালহোস্ট স্থানের চেয়ে অন্য কোনও জায়গায় থাকে এবং কেবল লোকালহোস্ট থেকে নয় তবে সংযোগের অনুমতি দেয়:

mysql -u myUser -h mysql.example.com myDatabase

এর চেয়ে আপনাকে আপনার মাইএসকিএল ব্যবহারকারীর জন্য পাসওয়ার্ড জিজ্ঞাসা করা হবে। এখন আপনি মাইএসকিএল কনসোলে রয়েছেন। এখানে আপনি টাইপ করতে পারে

source ~/mydump.sql;

আপনি দেখতে পাবেন কীভাবে আপনার ডাম্প থেকে আদেশগুলি কার্যকর করা হবে।

এই পদ্ধতিতে আপনি কোনও পিএইচপি মেমরি সীমা সম্পর্কে চিন্তা করবেন না।


0

যদি আপনার ডাটাবেসের আকার 128 মেগাবাইটের বেশি হয় তবে আপনার ডাটাবেসটিকে কিছু অংশে বিভক্ত করুন।

এসকিউএল ডাম্প স্প্লিটার সফ্টওয়্যার ব্যবহার করুন

এসকিউএল ডাম্প স্প্লিটটার একটি 430 কেবি অ্যাপ্লিকেশন যা সহজেই ছোট এসকিউএল ফাইলগুলিতে বিশাল ডাটাবেসগুলি বিভক্ত করার উপর সম্পূর্ণ নিয়ন্ত্রণ দেয়। এসকিউএল ডাম্প স্প্লিটারের সাহায্যে আপনি পারেন:

  • প্রতিটি অংশের আকার চয়ন করুন
  • মন্তব্যগুলি এড়িয়ে যেতে বেছে নিন (এমনকি ডিবির আকার হ্রাস করতে)
  • ক্রিয়াকলাপটি স্বয়ংক্রিয় করুন।

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