ত্রুটি 2006 (HY000): মাইএসকিউএল সার্ভার চলে গেছে


309

আমি যখন একটি বড় এসকিউএল ফাইল (একটি বড় INSERTপ্রশ্ন) উত্সের চেষ্টা করি তখন আমি এই ত্রুটিটি পাই ।

mysql>  source file.sql
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: *** NONE ***

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    3
Current database: *** NONE ***

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

এটি আমার সর্বোচ্চ-প্যাকেটের আকার:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

ফাইল আকার:

$ ls -s file.sql 
79512 file.sql

আমি যখন অন্য পদ্ধতিটি চেষ্টা করি ...

$ ./mysql -u root -p my_db < file.sql
Enter password: 
ERROR 2006 (HY000) at line 1: MySQL server has gone away

2
এটি ঠিক কত বড় ফাইল? এটি কি সম্ভবত সর্বোচ্চ_পোক্ত_প্যাক্ট সেটিংটি ছাড়িয়ে গেছে?
মার্ক বি

1
ঠিক আছে, এটা না। ফাইল থেকে পৃথক প্রশ্নগুলি বের করে এনে নিজে মনিটরে চালানোর চেষ্টা করুন। ক্র্যাশ / সংযোগ বিচ্ছিন্ন হওয়ার কারণে এখানে কিছু রয়েছে।
মার্ক বি

আমি এলোমেলোভাবে ফাইলগুলি থেকে প্রশ্নগুলি উত্থাপন করে সূক্ষ্ম কাজ করি। আমি প্রোগ্রামটিমেটিকভাবে এসকিউএল তৈরি করেছি এবং সবকিছু থেকে যথাযথভাবে পালিয়েছি। সুতরাং আমি নিশ্চিত নই যে সেখানে যদি একটি ত্রুটি ঘটে তবে কী ঘটবে।
বিজিকোড

1
আমারও একই সমস্যা ...
maaz

উত্তর:


561
max_allowed_packet=64M

এই লাইনটি my.cnfফাইলে যুক্ত করা আমার সমস্যা সমাধান করে।

এটি কার্যকর যখন কলামগুলিতে বড় মান থাকে যা সমস্যাগুলির কারণ হয়, আপনি এখানে ব্যাখ্যাটি খুঁজে পেতে পারেন ।

উইন্ডোজে এই ফাইলটি এখানে অবস্থিত: "সি: \ প্রোগ্রামডাটা \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার 5.6"

লিনাক্সে (উবুন্টু): / ইত্যাদি / মাইএসকিএল


3
এই সমাধানটি আমার জন্য বর্ণিত সমস্যা সমাধান করেছে; কেবল ক্লায়েন্ট-সাইডের কনফিগারেশন / বিকল্পগুলির মাধ্যমে কিছুই করা যায়নি এবং আমি পিএইচপি বা অন্য মাধ্যমে কোনও প্রোগ্রামেটিক সমাধানে যেতে রাজি ছিল না।
রিচার্ড সিটজে

154
আপনি মূল হিসাবে ডেটাবেজে লগইন করতে পারেন (বা সুপার সুবিধা) এবং করতে পারেন set global max_allowed_packet=64*1024*1024;- পাশাপাশি কোনও মাইএসকিউএল পুনরায় চালু করার প্রয়োজন নেই
রাজ্জিত

3
এটি আমার জন্য এটি স্থির করে দিয়েছে। my.cnf / ইত্যাদি ফোল্ডারে অবস্থিত হতে পারে।
স্যাম ভ্লোবার্গস

8
আপনি এটি কমান্ড লাইনে রাখতে সক্ষম হবেন, যা অস্থায়ীভাবে কোনও সিস্টেম ফাইল সম্পাদনা করা এড়াবে: <code> mysql --max_allowed_packet = 1GM </code>
জান স্টেইনম্যান

6
যে কেউ my.cnf ফাইলের অবস্থান সন্ধান করছেন, আপনি এই উত্তরটি পরীক্ষা করতে পারেন । sudo service mysql restartমাই সিএনএলএফ ফাইলের পরিবর্তনগুলি কার্যকর করতে : টাইপ করে মাইএসকিএল পুনরায় আরম্ভ করতে ভুলবেন না ।
কনসুয়েল

147

আপনি সর্বোচ্চ অনুমোদিত প্যাকেট বৃদ্ধি করতে পারেন

SET GLOBAL max_allowed_packet=1073741824;

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_allowed_packet


3
এটি আমার পক্ষে কাজ করেছিল, যদিও গৃহীত উত্তরটি তা দেয়নি। আমি অনুমান করছি যে এই উত্তরটির উচ্চতর মানটি আমার জন্য সমাধানের মূল।
জন বুব্রিসকি

আমি my.cnf- এ সর্বাধিক_গলা_প্যাকেট = 1024M সেট করেছি
সিসাবা টথ

1
এটি সার্ভার করে। ক্লায়েন্টে আপনাকে এটি করতে হবে, পাশাপাশি "মাইএসকিএল - ম্যাক্স_নিলেড_প্যাক্ট = 1073741824"।
জান স্টেইনম্যান

এটি আমার পক্ষে কাজ করেছে। একটি প্রশ্ন "1073741824" বাইটে রয়েছে
user2478236

66

গ্লোবাল আপডেট এবং my.cnf সেটিংস কিছু কারণে আমার পক্ষে কাজ করে নি। পাসিং max_allowed_packetক্লায়েন্ট সরাসরি মান এখানে কাজ:

mysql -h <hostname> -u username -p --max_allowed_packet=1073741824 <databasename> < db.sql

4
মাইএসকিউএল ওয়েবসাইট অনুসারে চিহ্নিত উত্তর এবং এটি উভয়ই ব্যবহার করা উচিত।
জেনেক্সার

2
কনফিগারেশন ফাইলগুলি পুনরায় লোড করতে বা এই সেটিংস পরিবর্তন করার পরে সার্ভার পুনরায় চালু করতে ভুলবেন না
সিএসবা তোথ

2
--max_allowed_packetএকমাত্র ক্লায়েন্টকে প্রভাবিত করে তা মনে রাখবেন । ফাইলটিতে সম্পাদনা max_allowed_packetকরে /etc/my.cnfএবং আপনার মাইএসকিএল সার্ভারটি পুনরায় চালু করে মাইএসকিএল সার্ভার (মাইএসকিএলডি) পরিবর্তন করার বিষয়টি বিবেচনা করুন ।
ফ্লুভ

নোট করুন যে "50M" বা "1G" এর মানব বান্ধব মানগুলি ক্লাইমে এবং my.cnf এ কাজ করে। dev.mysql.com/doc/refman/8.0/en/used-system-variables.html
txyoji

36

সাধারণভাবে ত্রুটি:

ত্রুটি: 2006 ( CR_SERVER_GONE_ERROR) - মাইএসকিউএল সার্ভার চলে গেছে

এর অর্থ ক্লায়েন্ট সার্ভারে কোনও প্রশ্ন পাঠাতে পারেনি


mysql আমদানি

আপনার নির্দিষ্ট ক্ষেত্রে ডাটাবেস ফাইল মাধ্যমে আমদানি করার সময় mysql , সম্ভবত এটির অর্থ হ'ল এসকিউএল ফাইলের কিছু ক্যোয়ারী আমদানি করার পক্ষে খুব বড় এবং সেগুলি সার্ভারে কার্যকর করা যায়নি, তাই ক্লায়েন্টটি প্রথম দেখা ত্রুটিতে ব্যর্থ হয়।

সুতরাং আপনি নিম্নলিখিত সম্ভাবনাগুলি করেছেন:

  • এর -fজন্য বল বিকল্প ( ) যোগ করুনmysqlবাকি জিজ্ঞাসাগুলি চালিয়ে যেতে এবং ।

    এটি দরকারী যদি ডাটাবেসে ক্যাশে সম্পর্কিত কিছু বড় প্রশ্ন থাকে যা যাইহোক প্রাসঙ্গিক নয়।

  • max_allowed_packetwait_timeoutআপনার সার্ভার কনফিগারেশন বৃদ্ধি করুন এবং (উদাঃ ~/.my.cnf)।

  • --skip-extended-insertবৃহত্তর প্রশ্নগুলি ভেঙে দেওয়ার জন্য বিকল্পটি ব্যবহার করে ডাটাবেস ডাম্প করুন । তারপরে আবার এটি আমদানি করুন।

  • এর --max-allowed-packetজন্য বিকল্প প্রয়োগ করার চেষ্টা করুন mysql


সাধারণ কারণ

সাধারণভাবে এই ত্রুটিটি বেশ কয়েকটি জিনিসকে বোঝাতে পারে যেমন:

  • সার্ভারের একটি প্রশ্নের ভুল বা খুব বড়,

    সমাধান: পরিবর্তনশীল বৃদ্ধিmax_allowed_packet

    • ভেরিয়েবলটি [mysqld]বিভাগের অধীনে রয়েছে কিনা তা নিশ্চিত করুন [mysql]

    • পরীক্ষার জন্য বড় সংখ্যা ব্যবহার করতে ভয় পাবেন না (যেমন 1G)।

    • মাইএসকিউএল / মারিয়াডিবি সার্ভারটি পুনরায় চালু করতে ভুলবেন না।

    • ডাবল চেক করে মানটি সঠিকভাবে সেট করা হয়েছিল:

      mysql -sve "SELECT @@max_allowed_packet" # or:
      mysql -sve "SHOW VARIABLES LIKE 'max_allowed_packet'"
  • আপনি ক্লায়েন্ট পক্ষের টিসিপি / আইপি সংযোগ থেকে একটি সময়সীমা পেয়েছেন।

    সমাধান: পরিবর্তনশীল বৃদ্ধিwait_timeout

  • সার্ভারের সাথে সংযোগ বন্ধ হয়ে যাওয়ার পরে আপনি একটি কোয়েরি চালানোর চেষ্টা করেছিলেন।

    সমাধান: অ্যাপ্লিকেশনটিতে একটি যুক্তিযুক্ত ত্রুটি সংশোধন করা উচিত।

  • হোস্টের নাম অনুসন্ধান ব্যর্থ হয়েছে (যেমন DNS সার্ভার সমস্যা), বা সার্ভারটি --skip-networkingবিকল্প দিয়ে শুরু করা হয়েছে ।

    আরেকটি সম্ভাবনা হ'ল আপনার ফায়ারওয়াল মাইএসকিউএল পোর্টটিকে ব্লক করে (যেমন 3306 ডিফল্টরূপে)।

  • চলমান থ্রেডটি হত্যা করা হয়েছে, সুতরাং আবার চেষ্টা করুন।

  • কোয়েরি কার্যকর করার সময় আপনি একটি বাগের মুখোমুখি হয়েছি যেখানে সার্ভারটি মারা গিয়েছিল।

  • একটি পৃথক হোস্টে চলমান ক্লায়েন্টের সংযোগের জন্য প্রয়োজনীয় সুযোগ-সুবিধা নেই।

  • এবং আরও অনেক কিছু, তাই এখানে আরও শিখুন: B.5.2.9 মাইএসকিউএল সার্ভার চলে গেছে


ডিবাগ

এখানে বিশেষজ্ঞের কয়েকটি স্তরের ডিবাগ ধারণা রয়েছে:

  • লগগুলি পরীক্ষা করুন, যেমন

    sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")
  • আপনার সংযোগ mysql, telnetবা পিং ফাংশনগুলির মাধ্যমে পরীক্ষা করুন (যেমন mysql_pingপিএইচপি তে)।

  • tcpdumpমাইএসকিউএল যোগাযোগকে স্নিফ করার জন্য ব্যবহার করুন (সকেট সংযোগের জন্য কাজ করবে না), যেমন:

    sudo tcpdump -i lo0 -s 1500 -nl -w- port mysql | strings
  • লিনাক্সে, ব্যবহার করুন strace। বিএসডি / ম্যাক ব্যবহারে dtrace/ dtrussযেমন

    sudo dtruss -a -fn mysqld 2>&1

    দেখুন: মাইএসকিউএলকে ডিট্যাকিংয়ের সাথে শুরু করা

মাইএসকিউএল সার্ভার বা ক্লায়েন্টকে কীভাবে ডিবাগ করতে হবে সে সম্পর্কে আরও জানুন: 26.5 মাইএসকিউএল ডিবাগিং এবং পোর্টিং

রেফারেন্সের জন্য ক্লায়েন্ট কমান্ডের জন্য ত্রুটি sql-common/client.cছুঁড়ে দেওয়ার জন্য দায়ী ফাইলের উত্স কোডটি পরীক্ষা করুন CR_SERVER_GONE_ERROR

MYSQL_TRACE(SEND_COMMAND, mysql, (command, header_length, arg_length, header, arg));
if (net_write_command(net,(uchar) command, header, header_length,
          arg, arg_length))
{
  set_mysql_error(mysql, CR_SERVER_GONE_ERROR, unknown_sqlstate);
  goto end;
}

--উইকটি আমার পক্ষে কাজ করে নি তবে - স্কিপ-এক্সটেন্ডেড-সন্নিবেশ করিয়েছে!
চিলনিট

20

কেবলমাত্র ক্ষেত্রে, আপনি ব্যবহার করতে পারেন ভেরিয়েবলগুলি পরীক্ষা করতে

$> mysqladmin variables -u user -p 

এটি বর্তমান ভেরিয়েবলগুলি প্রদর্শন করবে, এক্ষেত্রে সর্বোচ্চ_নীত_প্যাকেট, এবং কেউ অন্য উত্তরে বলেছে আপনি এটিকে সাময়িকভাবে সেট করতে পারেন

mysql> SET GLOBAL max_allowed_packet=1072731894

আমার ক্ষেত্রে সিএনএফ ফাইলটি আমলে নেওয়া হয়নি এবং কেন জানি না, তাই সেট গ্লোবাল কোডটি সত্যিই সহায়তা করেছিল helped


একসাথে সমস্ত কনফিগার সেটিংস দেখতে সক্ষম হতে পেরে দুর্দান্ত। ধন্যবাদ!
ডাবিবি

20

আমি ত্রুটিটি সমাধান করেছি ERROR 2006 (HY000) at line 97: MySQL server has gone awayএবং সাফল্যের সাথে এই দুটি পদক্ষেপ সম্পাদন করে একটি> 5 জিবি স্কুয়েল ফাইলটি স্থানান্তরিত করেছি:

  1. নীচের বিষয়বস্তু সহ অন্যরা প্রস্তাবিত হিসাবে /etc/my.cnf তৈরি করেছেন:

    [mysql]
    connect_timeout = 43200
    max_allowed_packet = 2048M
    net_buffer_length = 512M
    debug-info = TRUE
  2. --force --wait --reconnectকমান্ডে (যেমন mysql -u root -p -h localhost my_db < file.sql --verbose --force --wait --reconnect) ফ্ল্যাগগুলি যুক্ত করা হচ্ছে ।

গুরুত্বপূর্ণ দ্রষ্টব্য: উভয় পদক্ষেপগুলি সম্পাদন করা প্রয়োজন ছিল, কারণ আমি যদি /etc/my.cnf ফাইলে পরিবর্তনগুলি করার পাশাপাশি সেই পতাকাগুলি সংযোজন করতে বিরক্ত না করি তবে কিছু টেবিল আমদানির পরে অনুপস্থিত ছিল।

সিস্টেম ব্যবহৃত: ওএসএক্স এল ক্যাপিটান 10.11.5; mysql Ver 14.14 OSX10.8 (i386) এর জন্য 5.5.51 বিতরণ করুন


2
সমস্ত নির্দেশাবলী অনুসরণ করেও আমি ত্রুটি পাচ্ছি।
সন্তোষ হেগদে

যারা এই সমস্যাটি একটি ভাগ করা হোস্টে চালাচ্ছেন তাদের জন্য একটি কনফিগার ফাইল পরিবর্তন করতে পারবেন না এই সমাধানটি খুব ভাল কাজ করে।
ফিলিপ কস্তা

@ সন্তোষ হেগডে অনেক দেরি হতে পারে তবে আপনি এই পরিবর্তনটি পরিবর্তন করার পরে আপনাকে my.cnfআপনার মাইএসকিএল পরিষেবাটি পুনরায় চালু করতে হবে।
জেসন লিউ

11

আমারও একই সমস্যা ছিল তবে [মাইএসকিএলডি] এর অধীনে my.ini / my.cnf ফাইলটিতে সর্বোচ্চ_নয়েড_প্যাকটি পরিবর্তন করা কৌশলটি তৈরি করে।

একটি লাইন যুক্ত করুন

max_allowed_packet=500M

আপনার কাজ শেষ হয়ে গেলে এখন মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন।


@ বাবোনক হ্যাঁ তবে এই উত্তরটি আরও কার্যকর কারণ এটি কী বিভাগের অধীনে যেতে হবে তা বলে
জেসন হুইলার

11

আপনি রুট হিসাবে ডাটাবেসে লগইন করতে পারেন (বা সুপার সুবিধা) এবং করতে পারেন

set global max_allowed_packet=64*1024*1024;

পাশাপাশি কোনও মাইএসকিউএল পুনরায় চালু করার প্রয়োজন নেই। নোট করুন যে আপনার my.cnfসমাধানটিকে অন্য সমাধানগুলিতে বর্ণিত হিসাবে ঠিক করা উচিত :

[mysqld]
max_allowed_packet=64M

আপনি MySQL পুনরায় চালু করার পরে পরিবর্তনটি নিশ্চিত করুন:

show variables like 'max_allowed_packet';

আপনি কমান্ড-লাইনটিও ব্যবহার করতে পারেন তবে এর জন্য স্টার্ট / স্টপ স্ক্রিপ্টগুলি আপডেট করা দরকার যা সিস্টেম আপডেট এবং প্যাচগুলি টিকতে পারে না।

অনুরোধ হিসাবে, আমি এখানে আমার নিজের উত্তর যুক্ত করছি। এটা কাজ দেখে খুশি!


9

সমাধানটি আপনার বিকল্পগুলির ফাইলের মধ্যে দেওয়া মানগুলি wait_timeoutএবং connect_timeoutপরামিতিগুলিকে এর অধীনে বৃদ্ধি করছে[mysqld] ট্যাগের ।

আমাকে একটি 400MB মাইএসকিএল ব্যাকআপ পুনরুদ্ধার করতে হয়েছিল এবং এটি আমার জন্য কাজ করেছে (আমি নীচে যে মানগুলি ব্যবহার করেছি তা কিছুটা অতিরঞ্জিত, তবে আপনি বিষয়টি পেতে পারেন):

[mysqld]
port=3306
explicit_defaults_for_timestamp = TRUE
connect_timeout = 1000000
net_write_timeout = 1000000
wait_timeout = 1000000
max_allowed_packet = 1024M
interactive_timeout = 1000000
net_buffer_length = 200M
net_read_timeout = 1000000
set GLOBAL delayed_insert_timeout=100000

ব্লককোট


1
গ্রেট। এটি আমার আর একটি ত্রুটি সমাধান করতে পারে যা আমাকে সমাধান করতে সহায়তা করে :)
jrosell

6

দুটি জিনিস এখানে ঘটতে পারে;

  • আপনার INSERTদীর্ঘকাল চলছে, এবং ক্লায়েন্ট সংযোগ বিচ্ছিন্ন করছে। যখন এটি পুনরায় সংযোগ করে এটি কোনও ডাটাবেস নির্বাচন করে না, সুতরাং ত্রুটি। এখানে একটি বিকল্প হ'ল কমান্ড লাইন থেকে আপনার ব্যাচ ফাইলটি চালানো, এবং আর্গুমেন্টে ডাটাবেস নির্বাচন করা, এর মতো;

$ mysql db_name <উত্স.এসকিউএল

  • অন্যটি হ'ল আপনার আদেশটি phpবা অন্য কোনও ভাষার মাধ্যমে চালানো । প্রতিটি দীর্ঘ - চলমান বিবৃতি দেওয়ার পরে, আপনি প্রতিটি ক্যোয়ারির শুরুতে সংযুক্ত রয়েছেন তা নিশ্চিত করে আপনি সংযোগটি বন্ধ ও পুনরায় খুলতে পারবেন।

উল্লেখযোগ্য আরেকটি বিষয় হ'ল আমি তত্ক্ষণাত ত্রুটি source
পেয়েছি

সোর্স কমান্ডের সাথে সাথেই যদি আপনি ত্রুটিটি পান তবে সম্ভবত মাইএসকিউএল কোয়েরি সম্পর্কে কিছু পছন্দ করে না। আপনি সাধারণ লগ চেক করেছেন?
ক্রিস হেনরি

আমি কীভাবে সাধারণ লগটি পরীক্ষা করতে হবে তা নির্ধারণ করতে হবে .. এমএএমপি-তে রয়েছি এবং আমি নিশ্চিত নই যে এটি এটি ডিফল্টরূপে লিখেছিল।
বিজিকোড

আমি কেবল পিএইচপি অনুসন্ধান এবং এটি টুকরো টুকরো করে সমাধান করার পক্ষে বেছে নিয়েছি।
বিজিকোড

5

আপনি যদি ম্যাকের উপরে থাকেন এবং আমার মতো ব্রিউয়ের মাধ্যমে মাইএসকিএল ইনস্টল করেন তবে নীচেরগুলি কাজ করে।

  1. cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf

উত্স: হোমব্রিউ মাইএসকিএল ইনস্টলগুলির জন্য, আমার সিএনএনএফ কোথায়?

  1. যোগ max_allowed_packet=1073741824করুন/usr/local/etc/my.cnf

  2. mysql.server restart


2

আমি যখন মাইকিউএল ক্লাস্টার ব্যবহার করি তখন আমি এই ত্রুটির মুখোমুখি হয়েছি, আমি জানি না যে এই প্রশ্নটি একটি ক্লাস্টারের ব্যবহার থেকে আসে not ত্রুটিটি ঠিক একইরূপে, তাই আমার সমাধানটি এখানে দিন। এই ত্রুটিটি পেয়েছে কারণ ডেটা নোড হঠাৎ ক্রাশ হয়ে গেছে। তবে নোডগুলি ক্র্যাশ হয়ে গেলে আপনি এখনও সিএমডি ব্যবহার করে সঠিক ফলাফল পেতে পারেন:

ndb_mgm -e 'ALL REPORT MEMORYUSAGE'

এবং মাইএসকিএলডও সঠিকভাবে কাজ করে S তাই প্রথমে আমি বুঝতে পারি না ভুল কি what এবং প্রায় 5 মিনিট পরে, ndb_mgm ফলাফল কোনও নোড কাজ করে না। তখন আমি বুঝতে পারি সমস্যাটি। সুতরাং, সমস্ত ডেটা নোড পুনরায় চালু করার চেষ্টা করুন, তারপরে মাইএসকিএল সার্ভার ফিরে আসবে এবং সবকিছু ঠিক আছে।

তবে একটি জিনিস আমার কাছে অদ্ভুত, আমি যখন কিছু প্রশ্নের জন্য মাইএসকিএল সার্ভারটি হারিয়ে ফেলি, যখন আমি সিএমডি পছন্দ show tablesকরি তখনও আমি রিটার্নের তথ্যটি পেতে পারি 33 rows in set (5.57 sec), তবে কোনও টেবিলের তথ্য প্রদর্শিত হয় না।


1

অ্যামাজন আরডিএসের জন্য (এটি আমার ক্ষেত্রে), আপনি max_allowed_packetযে কোনও সন্নিবেশনে থাকা সর্বাধিক ডেটাটি বোঝার জন্য যে কোনও বাইটের মধ্যে প্যারামিটার মানটি পরিবর্তন করতে পারেন (উদাহরণস্বরূপ: আপনার সন্নিবেশে যদি 50 এমবি ব্লব মান থাকে তবে সেট করুন max_allowed_packetনতুন বা বিদ্যমান অবস্থায়, 64 এম = 67108864) এ parameter-group। তারপরে আপনার মাইএসকিউএল ইভেন্টে সেই পরামিতি-গোষ্ঠীটি প্রয়োগ করুন (উদাহরণটি পুনরায় বুট করার দরকার হতে পারে)।


যদি আপনার অ্যামাজন আরডিএসের সাথে কাজ করে এটি কাজ করে। আপনি আরডিএসে বৈশ্বিক মান নির্ধারণ করতে পারবেন না সেবাগ্রার মতোই, আপনি যদি গিয়ে যান এবং আপনার ডিবি'র কাস্টম প্যারামিটার গ্রুপটি পরিবর্তন করেন তবে এটি সন্ধান করুন max_allowed_packet parameterএবং এটি যথাযথ আকারে সেট করুন (বা যদি আপনার কাছে বড় বড় ব্লব রয়েছে তবে এটি সর্বাধিক মান 1073741824 এ সেট করুন) ) এটি কাজ করা উচিত.
জি_স্তাইল

একই ডেটাसेट বা সম্পূর্ণ এলোমেলোভাবে লোড করার সময় আপনি কি ধারাবাহিক ব্যর্থতা পেয়ে যাচ্ছেন? জিজ্ঞাসা করা হচ্ছে কারণ আমার একই সমস্যা আছে তবে এটি সম্পূর্ণরূপে এলোমেলো, 5 বার ব্যর্থ হবে এবং তারপরে 5 ম এ কাজ করবে। এছাড়াও, আমার লোকাল মেশিনে চলে যাওয়া এবং ভিজ্যুয়াল স্টুডিও থেকে দৌড়ানো সাহায্য করবে বলে মনে হচ্ছে তবে আমি তবুও একবারে একবারে ত্রুটির মধ্যে চলে যাব।
বিলিডি

0

যদি এটি পুনরায় সংযোগ স্থাপন করে এবং সংযোগ আইডি 2 পেয়ে থাকে তবে সার্ভারটি অবশ্যই স্পষ্টভাবে ক্র্যাশ হয়ে গেছে।

সার্ভার প্রশাসকের সাথে যোগাযোগ করুন এবং তাদের সমস্যা নির্ণয় করার জন্য পান get কোনও অ-দূষিত এসকিউএল সার্ভার ক্র্যাশ করা উচিত নয়, এবং মাইএসকিএলডাম্পের আউটপুট অবশ্যই না করা উচিত।

সম্ভবত এটিই ঘটতে পারে যে সার্ভার অ্যাডমিন কিছু বড় অপারেশনাল ত্রুটি করেছে যেমন আর্কিটেকচারের ঠিকানা-স্পেসের সীমা চেয়ে বড় বা ভার্চুয়াল মেমরির ক্ষমতার চেয়ে আরও বেশি কিছু বাফার আকার নির্ধারণ করে। মাইএসকিউএল ত্রুটি-লগ সম্ভবত কিছু প্রাসঙ্গিক তথ্য থাকতে পারে; তারা যাইহোক সক্ষম হলে তারা এটি পর্যবেক্ষণ করবে।


0

এটি একটি বিরল সমস্যা but তবে আমি এটি দেখেছি যদি কেউ সম্পূর্ণ / var / lib / mysql ডিরেক্টরিটি অন্য একটি সার্ভারে তাদের ডিবি স্থানান্তর করার উপায় হিসাবে অনুলিপি করে থাকে। এটি কাজ না করার কারণটি হ'ল ডাটাবেসটি চলছিল এবং লগ ফাইলগুলি ব্যবহার করছিল। / Var / লগ / মাইএসকিএল-তে লগ থাকলে কখনও কখনও এটি কাজ করে না। সমাধানটি হ'ল / var / লগ / মাইএসকিএল ফাইলগুলিও অনুলিপি করা।


0

ড্রুপাল 8 ব্যবহারকারীদের জন্য ডিবি আমদানি ব্যর্থতার সমাধান খুঁজছেন:

স্কয়ার ডাম্প ফাইলের শেষে "ওয়েবপ্রফিলার" সারণীতে ডেটা .োকানোর আদেশ দিতে পারে। এটি আমি কিছু ডিবাগ লগ ফাইল অনুমান করি এবং সাইটটির পক্ষে কাজ করা সত্যই গুরুত্বপূর্ণ নয় যাতে এই সমস্তটি মুছে ফেলা যায়। আমি লক ট্যাবলেট এবং আনলক ট্যাবলেটগুলি (এবং এর মধ্যে সমস্ত কিছু) সহ সমস্ত inোকানো মুছলাম deleted এটি স্কয়ার ফাইলের একেবারে নীচে। ইস্যু এখানে বর্ণিত:

https://www.drupal.org/project/devel/issues/2723437

তবে সেই টেবিলটি কেটে দেওয়ার পাশে এর কোনও সমাধান নেই।

বিটিডাব্লু আমি উপরের উত্তরগুলি থেকে সমস্ত সমাধান চেষ্টা করেছি এবং অন্য কিছুই সাহায্য করেনি।


0

আমি উপরের সমস্ত সমাধান চেষ্টা করেছি, সব ব্যর্থ হয়েছে।

আমি -h 127.0.0.1ডিফল্ট ব্যবহারের পরিবর্তে ব্যবহার করে শেষ করেছি var/run/mysqld/mysqld.sock


0

এই ত্রুটি বার্তাটি তখনও ঘটে যখন আপনি ডাম্পে ব্যবহৃত হয় তার চেয়ে আলাদা একটি বর্ণের সাথে SCHEMA তৈরি করেছিলেন। সুতরাং, যদি ডাম্প থাকে

CREATE TABLE `mytab` (
..
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

আপনার এটি SCHEMA কোলেশনে প্রতিফলিত করা উচিত:

CREATE SCHEMA myschema COLLATE utf8_unicode_ci;

আমি স্কিমাতে utf8mb4_general_ci ব্যবহার করছিলাম, কারণ আমার স্ক্রিপ্টটি নতুন ভি 8 ইনস্টলেশন থেকে এসেছে, এখন পুরানো 7. on এ একটি ডিবি লোড হচ্ছে এবং আমাকে প্রায় পাগল করে তুলেছে।

সুতরাং, সম্ভবত এটি আপনাকে কিছু হতাশার সময় বাঁচাতে সহায়তা করে ... :-)

(MacOS 10.3, mysql 5.7)


-1

যদি এর উত্তরের কোনওটিই সমস্যার সমাধান করে না, আমি টেবিলগুলি সরিয়ে এবং এগুলি আবার স্বয়ংক্রিয়ভাবে তৈরি করে এটিকে সমাধান করেছি:

when creating the backup, first backup structure and be sure of add:
DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT
CREATE PROCEDURE / FUNCTION / EVENT
IF NOT EXISTS
AUTO_INCREMENT

তারপরে আপনার ডিবি দিয়ে এই ব্যাকআপটি ব্যবহার করুন এবং এটি আপনার প্রয়োজনীয় সারণীগুলি সরিয়ে এবং পুনরায় তৈরি করবে।

তারপরে আপনি কেবল ডেটা ব্যাকআপ করেন এবং একই কাজ করেন এবং এটি কার্যকর হবে।


-3

এটির মতো মাইএসকিএল ক্লায়েন্ট ব্যবহার সম্পর্কে কীভাবে:

mysql -h <hostname> -u username -p <databasename> < file.sql

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