۷ خطای معمول در MySQL

خطا ها و اشتباهات، بخش رایجی در همه ی زمینه ها هستند. به ویژه هنگام توسعه دادن نرم افزار ها و برنامه ها. هنگام استفاده از MySQL یا هر پایگاه داده دیگری نیز ، ممکن است با خطا های متفاوتی برخورد کنید، که ندانید علت آن ها چیست و یا چگونه می توانید این ارور ها را مدیریت و برطرف کرد. اما اولین گام برای رفع این مسئله این است که، خطاها را تشریح کنیم و بتوانیم آن ها را بخوانیم. در ادامه با من همراه باشید تا چند تا از رایج ترین خطا ها را با هم بررسی کنیم. برای مشاهده جدول همه ی خطاهای MySQL کلیک کنید.ساختار کلی ارور های MySQL :هر خطای MySQL از ۳ بخش زیر تشکیل می شود : ERROR NUMBER : یک عدد اختصاصی است که هر خطا را معرفی می کندSQLSTATE : کدی است که وضعیت خطا را شناسایی می کندERROR MESSAGE : خطا را به گونه ای که برای انسان ها قابل فهم باشد تشریح می کندERROR 1146 (42S02): Table 'test.no_such_table' doesn't existدر این مثال : 1146 همان ERROR NUMBER است و 42S02 همان SQLSTATEو پیام روبری دو نقطه : یعنی Table 'test.no_such_table' dossn't exist همان ERROR MESSAGE است . 1. Access denied (error 1045) اولین خطای مورد بررسی ما خطای عدم دسترسی است. احتمالا بیشتر شما برای یک بار هم که شده هنگام کار با MySQL با این ارور روبرو شده اید. این خطا به دلایل زیادی رخ می دهد ، اما معمول ترین آن ها به این دلیل است که ، سرور به برنامه های مشتری اجازه می دهد که از حساب های MySQL استفاده کند. 2. The Table is full (error 1114)ممکن است به یکی از دو دلیل زیر باشد : دیسک پر شده باشد و یا جدول به بیشترین اندازه خود رسیده باشد. می توانیم با محدودیت های سیستم عامل روی اندازه فایل ها ، بیشترین اندازه جدول در این پایگاه داده را تعیین کنید. اندازه جدول ها در فایل ها، به صورت پیش فرض توسط سیستم عامل تعیین می شود ، نه پایگاه داده. برای بیشتر کردن محدودیت اندازه فایل ، وارد بخش documentation specific سیستم عامل شوید. 3. Commands out of sync اگر با این خطا روبرو شده اید ، به این دلیل است که شما توابع مشتری (client) را به ترتیب درستی فراخوانی نکرده اید. برای مثال برای ایجاد یک کوئری جدید، باید دستور ()mysql_free_result پیش از دستور ()mysql use_result فراخوانی شود. یا زمانی که بخواهید دو کوئری برای برگرداندن داده ها ایجاد کنید، باید ابتدا دستور ()mysql_use_result را فراخوانی کنید. 4. Out of Memory (error 2008)اگر با این خطا روبرو شدید ، به این معنی است که MySQL حافظه کافی برای ذخیره کل نتیجه درخواست (query) ندارد. برای حل این مشکل ابتدا باید ببینید، آیا درخواست شما درست است یا نه. یا می توانید mysql را با quick - - فراخوانی کنید. 5. Too Many Connections (error 1040)برخورد کردن با این خطا به این معنی است که ، همه ی اتصالات دارند ، توسط سایر مشتری ها استفاده می شوند. تعداد اتصالات توسط max_connections مدیریت می شود، پس برای این که اتصالات بیشتری را ایجاد کنیم ، باید اندازه این متغیر را افزایش دهیم. 6. Lost connection to MySQL server (error 2013)چندین دلیل برای آشکار شدن این خطا وجود دارد، که دو دلیل رایج تر آن را بررسی می کنیم.دلیل اول این که، معمولا مشکل اتصال به شبکه را نشان می دهد. بنابراین زمانی که به طور مکرر این خطا را ببینیم ، حتما باید اتصالات شبکه را بررسی کنیم. در حالت دوم ممکن است این خطا زمان اتصال اولیه به سرور رخ دهد. در این حالت اگر متغیر connect_timeout در بازه ی زمانی کوتاهی باشد ، با افزایش این بازه برای مثال به ۱۰ ثانیه ، می توان این خطا را برطرف کرد. اگر ارتباط کندی دارید می توانید حتی این مقدار را بیشتر هم کنید.7. Ignoring user این خطا یعنی هنگام راه اندازی mysql و یا در حین بارگزاری جداول گرنت (grant)، یک حساب کاربری با رمز عبور نامعتبر پیدا شده. در نتیجه این حساب توسط سیستم نادیده گرفته می شود. بنابراین برای حل این مشکل کافی است ، که به سادگی یک رمز عبور نو و معتبر، برای حساب کاربری موردنظر ایجاد کرد.امیدوارم که مطالب گفته شده کارا باشند و بتوانید به خوبی از آن ها استفاده کنید. منابع : که برای اطلاعات بیشتر نیز می توانید به آن ها مراجعه کنید: simplebackups.comhub.packtpub.comsinglestore.commariadb.comdev.mysql.comبا تشکر از استاد گرامی دکتر مریم حاجی اسمعیلی ، دکترای علوم کامپیوتر از دانشگاه کینگستون لندن Dr. Maryam Hajiesmaeili PhD of computer science from Kingston university of Londonhttps://ir.linkedin.com/in/dr-maryam-hajiesmaeili-90930743https://www.linkedin.com/in/tannaz-gholami-471a8821a