মাইএসকিউএল ত্রুটি 1153 - 'ম্যাক্স_গ্রেড_প্যাক্ট' বাইটের চেয়ে বড় প্যাকেট পেয়েছে


430

আমি একটি মাইএসকিউএল ডাম্প আমদানি করছি এবং নিম্নলিখিত ত্রুটি পেয়েছি।

$ mysql foo < foo.sql 
ERROR 1153 (08S01) at line 96: Got a packet bigger than 'max_allowed_packet' bytes

স্পষ্টতই ডাটাবেসে সংযুক্তি রয়েছে, যা খুব বড় সন্নিবেশগুলির জন্য করে।


এটি আমার স্থানীয় মেশিনে রয়েছে, মাইএসকিউএল প্যাকেজ থেকে ইনস্টল করা মাইএসকিউএল 5 সহ একটি ম্যাক।

আমি কোথায় max_allowed_packetডাম্প আমদানি করতে সক্ষম হতে পরিবর্তন করব ?

আমার কি আরও কিছু সেট করা উচিত?

সবে চালানো mysql --max_allowed_packet=32M …একই ত্রুটির ফলস্বরূপ।



@ মুলসকিনার, এই প্রশ্নটি আপনি উল্লেখ করেছেন তার 3 বছর পূর্বে পোস্ট করা হয়েছিল এবং আমি আপনার মন্তব্যের 4 বছর পরে এটিকে নির্দেশ করছি। : পি
টিওম্নো

2
Webyog.com লিঙ্কটি অসম্পূর্ণ: 404
Pathros

এখানে , অনুরূপ একটি ত্রুটি, "ক্যোয়ারীর প্যাকেটটি বৃহত্তর (5526600> 1048576)" J মাইএসকিউএল ডাটাবেস ব্যবহারকারীর সাথে সম্পর্কিত)।
নায়েদিকিকে

উত্তর:


589

আপনাকে সম্ভবত ক্লায়েন্ট (আপনি আমদানি করতে দৌড়াচ্ছেন) এবং ডিমন মাইএসকিএলডি যে চলমান এবং আমদানি স্বীকার করছে তাদের উভয়ের জন্যই এটি পরিবর্তন করতে হবে।

ক্লায়েন্টের জন্য, আপনি এটি কমান্ড লাইনে নির্দিষ্ট করতে পারেন:

mysql --max_allowed_packet=100M -u root -p database < dump.sql

এছাড়াও, মাইকিকিএলড বিভাগের অধীনে my.cnf বা my.ini ফাইলটি পরিবর্তন করুন এবং সেট করুন:

max_allowed_packet=100M

অথবা আপনি একই সার্ভারের সাথে যুক্ত কোনও মাইএসকিউএল কনসোলে এই কমান্ডগুলি চালাতে পারেন :

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000;

(প্যাকেটের আকারের জন্য খুব বড় মান ব্যবহার করুন))


আমার 16 জিবি র‌্যাম সহ একটি সার্ভার রয়েছে, max_allowed_packet100 এমবি সেট করা কি খারাপ ধারণা ?
ওয়েবনেট

11
এফওয়াইআই - এটি আমাকে একটি বিবিধ ত্রুটি সমাধান করতে সহায়তা করেছে - "# 2006 সার্ভার চলে গেছে"
ইতোপূর্বে 16

37
সচেতন থাকুন যে "সেট গ্লোবাল" ব্যবহার করে পরবর্তী মাইএসকিএল পরিষেবা পুনরায় চালু না হওয়া পর্যন্ত কাজ করে।
শেভ

2
"সেট গ্লোবাল" এবং ফাইনাল "এড়ান;" my.ini বা my.cnf ফাইলগুলিতে এই মানগুলি যুক্ত করার সময়। উদা: my.conf এ "নেট_বফার_লেন্থ = 1000000"।
রুস্তাভোর

3
সেন্টওএস 5 তারিখে, my.cnf /etc/my.cnf এ অবস্থিত
Rustavore

124

মাইকেল চালক যেমন বলেছিলেন, আপনাকে এটি ক্লায়েন্ট এবং ডেমন মাইএসকিএল সার্ভার উভয়ের জন্যই পরিবর্তন করতে হবে ।

ক্লায়েন্ট কমান্ড-লাইনের জন্য তার সমাধানটি ভাল, তবে আইএনআই ফাইলগুলি সর্বদা কৌতুকটি করে না, কনফিগারেশনের উপর নির্ভর করে।

সুতরাং, একটি টার্মিনাল খুলুন, মাইএসকিএল প্রম্পট পেতে mysql টাইপ করুন এবং এই আদেশগুলি জারি করুন:

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000; 

মাইএসকিএল প্রম্পটটি উন্মুক্ত রাখুন এবং আপনার কমান্ড-লাইন এসকিউএল এক্সিকিউশনটি দ্বিতীয় টার্মিনালে চালান ..


2
আমার জন্য সমস্যার সমাধান; আমি যে আমদানি করছি তা একবার বন্ধ হয়ে গেছে এবং আমি সহজেই কনফিগারেশনটি পরিবর্তন করতে পারি না। এটি দুর্দান্ত কাজ করেছে। : ডি
রব হাওয়ার্ড

39

এটি my.iniসার্ভার বিভাগের অধীনে আপনার ফাইলে (উইন্ডোজে, \ প্রোগ্রাম ফাইলগুলি \ মাইএসকিউএল \ মাইএসকিউএল সার্ভারে অবস্থিত) পরিবর্তন করা যেতে পারে , উদাহরণস্বরূপ:

[mysqld]

max_allowed_packet = 10M

5
একটি ম্যাকের উপর, ফাইল স্পষ্টতই অন্য কোথাও অবস্থিত।
kch

2
নিশ্চিত, তবে কনফিগারেশনটি এখনও কোথাও রয়েছে যদিও আমি সঠিক অবস্থানটি জানি না
GHad

আমার জন্য ফেডোরা ২০-তে মারিয়াডিবি সহ, সেটিংটি /etc/my.cnf.d/server.cnf এর শেষে রেখে কৌশলটি করেছে। আমাকে অবশ্যই পরিষেবাটি পুনঃসূচনা করতে হবে ... sudo Nano systemctl maartadb.service পুনরায় আর্ট করুন
রায় ফস

ফাইলটি সম্ভবত "মাই সিএনএফ" এবং নিক্স সিস্টেমে, সাধারণত / ইত্যাদি / অথবা / ইউএসআর / স্থানীয় / ইত্যাদি ক্ষেত্রে থাকতে পারে। আপনি একবার সম্পাদনা করার পরে, পরিবর্তন প্রয়োগ করতে mysql সার্ভারটি পুনরায় চালু করতে ভুলবেন না।
ক্রিস

17

Mysql.com ডিএমজি প্যাকেজ বিতরণ থেকে মাইএসকিউএল ব্যবহার করার সময় ম্যাক ওএস এক্সে মাই ওএস এক্সে পুনরায় করুন

ডিফল্টরূপে, my.cnf কোথাও খুঁজে পাওয়া যায় না।

তোমাদের মধ্যে একজন কপি করা আবশ্যক /usr/local/mysql/support-files/my*.cnfকরতে /etc/my.cnfএবং পুনর্সূচনা mysqld। (আপনি যদি এটি ইনস্টল করেন তবে আপনি মাইএসকিউএল অগ্রাধিকার ফলকে যা করতে পারেন))


ওএসএক্সের জন্য জায়গাটিতে থাকা ডিফল্ট কনফিগারেশনটি আমার-মিডিয়াম.সিএনএফ হিসাবে উপস্থিত হবে, যদিও মাই-লার্জড_প্যাকট আকারটি আমার-লার্জ সিএনএফ-তে সমান ... যতক্ষণ না আপনি জিনিসগুলি পরিবর্তন করা শুরু করেন :)
ক্রিস বার্গেস

আমার ক্ষেত্রে /usrl/local/mysql/my.cnf আমি /etc/my.cnf এ অনুলিপি না করা পর্যন্ত কাজ করে না।
ভিজি

14

ইত্যাদিতে / my.cnf এ সর্বোচ্চ_নীলিত _ প্যাকেট এবং নেট_বুফার_ দৈর্ঘ্য পরিবর্তন করতে চেষ্টা করুন

max_allowed_packet=100000000
net_buffer_length=1000000 

যদি এটি কাজ না করে থাকে তবে এতে পরিবর্তন করার চেষ্টা করুন

max_allowed_packet=100M
net_buffer_length=100K 

12

সমাধানটি মাইএসকিউএল ডেমনের সর্বোচ্চ_নয়েড_প্যাককেট বাড়ানো। আপনি সুপার হিসাবে লগ ইন করে এবং নিম্নলিখিত কমান্ডগুলি চালিয়ে রানিং ডেমনকে এটি করতে পারেন।

# mysql -u admin -p

mysql> set global net_buffer_length=1000000;
Query OK, 0 rows affected (0.00 sec)

mysql> set global max_allowed_packet=1000000000;
Query OK, 0 rows affected (0.00 sec)

তারপরে আপনার ডাম্প আমদানি করতে:

gunzip < dump.sql.gz | mysql -u admin -p database

মাইএসকিউএলের কোন সংস্করণ আপনি এটি চালাচ্ছেন?
crmpicco


4

max_allowed_packetএকটি কমান্ড জারি করে একটি ভেরিয়েবল ব্যবহার করুন

mysql --max_allowed_packet=32M -u root -p database < dump.sql


2
চেষ্টা করেছিলাম, কাজ হয়নি। 272 এমবিতে পুরো ডাম্প, এর চেয়ে বেশি উচ্চতার সাথে চেষ্টা করে।
kch

4

আপনার সমস্যার সাথে সামান্য সম্পর্কযুক্ত, তাই গুগলের জন্য একটি এখানে।

আপনি যদি এসকিউএলকে মাইক্র্ল্ড্প্প না করেন তবে এটি হতে পারে যে আপনার এসকিউএল নষ্ট হয়ে গেছে।

আমার কোডটিতে দুর্ঘটনাক্রমে একটি অনাবৃত স্ট্রিং আক্ষরিক হয়ে আমি এই ত্রুটিটি পেয়েছি। ঝাল আঙুল হয়।

পলাতক স্ট্রিংয়ের জন্য এটি একটি দুর্দান্ত ত্রুটি বার্তা, এটি মাইএসকিউএলের জন্য ধন্যবাদ!


1
এসকিউএল ভাঙার কারণে আমিও এই ত্রুটি পেয়েছি। আরও সুনির্দিষ্টভাবে, আমার সারণীতে নালাগুলি রয়েছে এবং আমার কোডটি নাল মান সন্নিবেশ করানো হয়েছিল। আমাকে তথ্যমূলক ত্রুটি দেওয়ার পরিবর্তে, মাইএসকিউএল max_allowed_packetত্রুটিটি ফিরিয়ে দিয়েছে । যদি এটি ভবিষ্যতে তাদের জন্য সহায়তা করে তবে আমি পান্ডাস এপিআই ব্যবহার করে লিখছিলামdf.to_sql(...)
অ্যালেক্স

1

কখনও কখনও টাইপ সেটিং:

max_allowed_packet = 16M

my.ini কাজ করছে না।

নিম্নলিখিত হিসাবে my.ini নির্ধারণ করার চেষ্টা করুন:

set-variable = max_allowed_packet = 32M

অথবা

set-variable = max_allowed_packet = 1000000000

তারপরে সার্ভারটি পুনরায় চালু করুন:

/etc/init.d/mysql restart

1

max_allowed_packetকোনও আক্রমণকারী বড় আকারের প্যাকেটগুলি ধাক্কা দিতে পারে এবং সিস্টেমটি ক্র্যাশ করতে পারে বলে এটির উচ্চমূল্য থাকা একটি সুরক্ষা ঝুঁকি ।

সুতরাং, max_allowed_packetসুর ​​ও পরীক্ষা করার জন্য সর্বোত্তম মান ।

এটি যখন my.ini বা my.conf এর অংশ হিসাবে রাখার চেয়ে প্রয়োজন হয় (ব্যবহার করার সময় set global max_allowed_packet = xxx) পরিবর্তিত হওয়া ভাল ।


0

আমি একটি ভাগ করা হোস্টিং পরিবেশে কাজ করছি এবং আমি দ্রুপালের উপর ভিত্তি করে একটি ওয়েবসাইট হোস্ট করেছি। আমি my.iniফাইল বা my.confফাইলও সম্পাদনা করতে পারি না ।

সুতরাং, আমি সম্পর্কিত সমস্ত টেবিল মুছে ফেলেছি Cacheএবং তাই আমি এই সমস্যাটি সমাধান করতে পারি। তবুও আমি এই সমস্যাটি পরিচালনা করার জন্য একটি নিখুঁত সমাধান / উপায় খুঁজছি।

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


0

ত্রুটি:

72 6772২ লাইনে এআরআরআর 1153 (08S01): 'ম্যাক্স_গ্ল্যাড_প্যাকেট' বাইটের চেয়ে বড় একটি প্যাকেট পেয়েছে এক্সপ্যাকড 1 দিয়ে অপারেশন ব্যর্থ হয়েছে

প্রশ্ন:

SET GLOBAL max_allowed_packet=1073741824;
SHOW VARIABLES LIKE 'max_allowed_packet'; 

সর্বাধিক মান:

Default Value (MySQL >= 8.0.3)  67108864
Default Value (MySQL <= 8.0.2)  4194304
Minimum Value   1024
Maximum Value   1073741824

-1

আপনি যখন মাইএসকিএলডাম্প দিয়ে ডাম্প করলেন তখন তার চেয়ে বেশি (বা আরও বেশি) সর্বাধিক সেট করুন_প্যাকেট। যদি আপনি এটি না করতে পারেন তবে একটি ছোট মান দিয়ে আবার ডাম্প তৈরি করুন।

অর্থাৎ, ধরে নিলে আপনি এটিকে মাইএসকিলডাম্প দিয়ে ফেলে দিয়েছেন। আপনি যদি অন্য কোনও সরঞ্জাম ব্যবহার করেন তবে আপনি নিজেরাই।

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