اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

connect_timeout و max_allowed_packet در MySQL/MariaDB چیست؟

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    connect_timeout و max_allowed_packet در MySQL/MariaDB چیست؟

    و اما مقدارهای connect_timeout و max_allowed_packet در MySQL/MariaDB چیست؟ در این مقاله کوتاه قصد دارم نحوه تغییر متغیرهای connect_timeout و همچنین max_allowed_packet را در مای اسکیول به همراه نحوه کارکرد آنها را شرح دهم.
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	mysql-too-many-connections-error.jpg
نمایش ها:	846
اندازه:	48.2 KB
شناسه:	26668




    همچنین توصیه میشود مطالعه کنید :

    نکات مفید برای برطرف کردن خطاهای رایج در MySQL

    15 ترفند مفید برای Tune کرد (بهینه سازی و بهبود عملکرد) MySQL/MariaDB

    آموزش دستورات MySQL (بخش اول)



    متغییر connect_timeout :

    connect_timeout در تنظیمات MySQL به سرور مای اسکیول میگه که چه مدت منتظر یک پکت ارسالی از سمت کلاینت قبل از پاسخ دادن (خطای Bad handshake) بمونه. مقدار پیش فرض 10 ثانیه است.



    متغییر max_allowed_packet :

    زمانیکه یک کلاینت مای اسکیول یا سرور مای اسکیول یک بسته ای را بزرگتر از سایز max_allowed_packet دریافت میکند، در اینجا یک خطای ER_NET_PACKET_TOO_LARGE رخ داده و کانکشن ها بسته میشود و برخی کلاینت ها و همچنین شما ممکن است خطای Lost connection to MySQL server را در میان کانکشن هایتان دریافت کنید.

    هر دوی اینها (client و server) متغییر max_allowed_packet خودشان را دارند،‌ بنابراین اگر شما میخواهید پکت های بزرگ را مدیریت کنید، شما باید این مقدار را هم در سرور و هم کلاینت افزایش دهید.

    اگر شما از برنامه کلاینت mysql استفاده میکنید، مقدار پیش فرض max_allowed_packet برابر با 16MB است. برای قراردادن مقدار بیشتر، دستور زیر را اجرا کنید.
    کد PHP:
    shellmysql --max_allowed_packet=32M 
    مقدار max_allowed_packet در سرور برابر با 1MB است. اگر سرور نیاز به کوئری های بزرگتر داره شما میتوانید اونو افزایش بدید (برای مثال،‌ اگر شما با متغییرهای بزرگ BLOB کار میکنید). برای قرار دادن مقدار 16MB، دستور زیر را اجرا کنید.
    کد PHP:
    shellmysqld --max_allowed_packet=16M 
    شما همچنین میتوانید متغییر max_allowed_packet را به عنوان یک آپشن به فایل اضافه کنید. برای مثال، برای قرار دادن مقدار 16MB، خط زیر را به فایل تنظیمات اضافه کند.
    کد PHP:
    [mysqld]
    max_allowed_packet=16M 
    این روش برای افزایش مقدار متغییر امن تر است زیرا مموری اضافی فقط زمانیکه نیاز هست اختصاص داده میشود. برای مثال، mysqld فقط زمانیکه یک کوئری بزرگ یا یک نتیجه بزرگ را میخواهد برگرداند مموری بیشتری را اختصاص میدهد. مقدار پیش فرض کوچک متغییر جهت احتیاط برای گرفتن پکت های نادرست بین کلاینت و سرور میباشد، همچنین مطمئن شوید خارج از مموری توسط استفاده از پکت های بزرگ تصادفی آنرا اجرا نمیکنید.

    شما همچنین ممکن است مشکلات عجیب و غریبی با پکت های بزرگ در صورت استفاده از مقادیر بزرگ BLOB دریافت کنید اما دسترسی mysqld به مموری کافی برای بکاربردن کوئری داده نشده است. اگر شما به این مورد شک دارید، سعی کنید ulimit -d 256000 را به ابتدای اسکریپت mysqld_safe اضافه کنید و mysqld را مجددا راه اندازی کنید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-20-2021, 10:28 AM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X