![how-to-fix-1146-table-doesnt-exist-in-joomla](https://www.afzoneha.com/wp-content/uploads/2018/01/how-to-fix-1146-table-doesnt-exist-in-joomla.png)
همانطور که مستحضرید سیستم مدیریت محتوای جوملا بروی پایگاه داده بسیار قدرتمند MySQL دارای اپتیمم هماهنگی و عملکرد می باشد. اما در سایه ی این قدرت گاهاً مشاهده میکنیم که در حین کار با سایت خود دچار خطاهای نامعلوم و یا معلوم از سمت جوملا و دیتابیس میشوید که کلیات خطا بر این موضوع دلالت دارد که جدولی از جداول جوملای شما یا افزونه های نصب شده بروی سایت موجود نبوده و از دسترس خارج شده اند!
این مسئله بیشتر بعد از انجام آپدیت های جوملا از ورژن های قبل تر به آخرین نسخه ها اتفاق میفتد و یا به تعبیر دیگر میتوان علت به وقوع پیوستن این خطا را به وجود افزونه های قدیمی بروی جوملا و ناسازگاری با نسخه جدید جوملا دانست که در زیر به نکاتی برای رفع آن خواهیم پرداخت.
حالات مختلف نمایش خطا:
1 |
Table 'milanair_db.lc9y0_slogin_users' doesn't exist SQL=DELETE FROM `lc9y0_slogin_users` WHERE `user_id` = 290 |
برای بررسی این خطا از طریق مدیریت جوملا به به منوی کامپوننت ها » بروزرسانی جوملا میرویم در این صفحه با لینک زیر مواجه خواهیم شد.
1 2 |
An error has occurred. ۱۱۴۶ Table `updates` doesn't exist SQL=SELECT DISTINCT update_site_id FROM #__updates WHERE `update_site_id` IN ( SELECT update_site_id FROM #__update_sites WHERE `last_check_timestamp` IS NULL OR `last_check_timestamp` <= '1493997061') |
و یا اینکه ممکن در بخشی از افزونه های جوملا مثل ایجاد نام کاربری جدید و یا ذخیره مطالب و حتی بازکردن صفحات کامپوننت یا ماژول های جوملا با خطای عدم موجودی یک تیبل خاص در دیتابیس مواجه شویم.
1 |
Table 'XXX_db.xxx_slogin_users' doesn't exist |
حال که به وجود این خطا پی بردیم از مدیریت جوملا به منوی افزونه ها » دیتابیس میرویم. همانطور که در تصویر زیر مشاهده میکنید خطاهایی که هسته جوملا آن را نمایش داده و فهرست کرده است همگی بر وجود یک نقص دلالت میکند.
نمونه متنی خطا:
1 2 3 4 5 |
Error Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE field = 'infourl' Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE Field = 'categoryid' Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE field = 'extra_query' Table 'updates' doesn't exist SQL=SHOW COLUMNS IN `#__updates` WHERE field = 'version' AND type = 'varchar(32)' |
راه حل:
[quote]
همکار گرامی قبل از هرگونه اصلاح یا تغییر در سایت خود، گرفتن بکاپ و پشتیبانی از سایت توصیه می شود.
[/quote]
برای حل این مشکل از طریق کنترل هاست وارد محیط phpmyadmin میشویم. و از لیست دیتابیس های موجود؛ نام دیتابیسی که سایت جوملایی آن به متصل است و اطلاعات جوملا در این دیتابیس ذخیره می شود را انتخاب میکنیم.
در محیط این دیتابیس میتوانیم فهرست جداول موجود را ملاحضه کنیم. در این صفحه با کلیک بروی تب “SQL” از برگه های بالای phpmyadmin به صفحه ای مشابه تصویر وارد میشویم تا بتوانیم با تزریق چند خط کد اقدام به رفع و ترمیم این خطا کنیم.
پس از رفتن به تب SQL کد زیر را کپی کنید و داخل کادر خالی آن (مطابق تصویر بالا) جایگذاری کنید و بروی دکمه Go کلیک کنید تا کد در دیتابیس شما تزریق شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
DROP table IF EXISTS afzoneha_updates; CREATE TABLE `afzoneha_updates` ( `update_id` int(11) NOT NULL AUTO_INCREMENT, `update_site_id` int(11) DEFAULT '0', `extension_id` int(11) DEFAULT '0', `name` varchar(100) DEFAULT '', `description` text NOT NULL, `element` varchar(100) DEFAULT '', `type` varchar(20) DEFAULT '', `folder` varchar(20) DEFAULT '', `client_id` tinyint(3) DEFAULT '0', `version` varchar(32) DEFAULT '', `data` text NOT NULL, `detailsurl` text NOT NULL, `infourl` text NOT NULL, `extra_query` VARCHAR(1000) DEFAULT '', PRIMARY KEY (`update_id`) ) ENGINE=MyIsam DEFAULT CHARSET=utf8 COMMENT='Available Updates'; |
توجه کنید: در کد بالا فرض بر این بوده که پیشوند جداول دیتابیس ما afzoneha_ می باشد. قبل از اینکه کد را تزریق کنید. کلیه عبارت های afzoneha_ را با پیشوند دیتابیس خود جایگزین کنید. اگر از این مورد اطلاعی ندارید میتوانید با رفتن به مدیریت جوملا » تنظیمات سایت » تب سرور از این مقدار مطلع شوید.
بعد از کلیک بروی دکمه Go با صفحه ای مشابه تصویر زیر مواجه خواهیم شد که همانطور که مشخص است پیام موفقیت آمیز بودن تزریق کد را به ما نمایش میدهد.
حالا میتوانید دوباره از طریق مدیریت جوملا و تب بروزرسانی جوملا و همچنین بخش افزونه ها » دیتابیس ، اقدام به بررسی رفع خطای موردنظر بپردازید. این مشکل با این راه حل برطرف خواهد شد. اگر هنوز مشکل دارید . میتوانید مسئله ی موردنظر خود را بصورت کامنت در انتهای این پست ارسال فرمایید.
امیدواریم که مطالعه این مقاله مورد استفاده و پسند شما واقع شده باشد.
عاااااااااااااااااااااااااااااااااااااااااالی
تشکر بسیار
باسلام. متشکریم بابت ابراز لطف شما و خوشحالیم که این آموزش تونست گره کوچکی از کار شما باز کنه.
موفق و سربلند باشید
با سلام من در نصب برنامه پرستا شاپ با این ارور مواجه شده بودم که با انجام این کار ارور رفع شد وقعا متشکرم
سلام خدمت شما دوست گرامی.
خواهش میکنم موفق و سربلند باشید
با عرض سلام
متشکر از آموزش ما
من فرآیندی که فرموده بودید انجام دادم اما مشکلم برطرف و یه مورد عجیب داخل مدیریت سایتم تب سرور پیشوند جداول : Database Tables Prefix : s9r5u_ نوشته شده اما داخل php my admin پیشوند جداولم : lug7p هستش!
داخل مدیریت تغییرش میدم به چیزی که داخل php my admin هستش لاگ اوت میشم و دیگه نام کاربری منو نمیشناسه!
مشکلم بروز رسانی جوملا و آپلود افزونه هستش که ارور موضوع این تاپیک نمایش داده میشه
ممنون میشم بتونید کمکم کنید
با سلام خدمت شما دوست گرامی
این مورد نیازمند بررسی نسخه فعلی جوملا و دسترسی های موجود بروی پوشه های ضروری برای نصب و آپدیت هست. در صورت نیاز اطلاعات ادمین و هاست رو از طریق تلگرام یا واتساپ به شماره ۰۹۱۱۸۱۷۱۰۹۰ و یا ایمیل Info{at}afzoneha.com ارسال بفرمایید تا موضوع بررسی شود.
با تشکر از حُسن انتخاب شما
با سلام و درود افزونه ای روی یک قالب فروشگاهی جوملا نصب کردم. قالب کار میکنه (سالم و بدون مشکل)
و وقتی میخوام از افزونه استفاده کنم با خطای زیر مواجه میشه:
۱۱۴۶ Table ‘max.#__k2_categories’ doesn’t exist
راهنمایی فرمایید
با سلام خدمت شما دوست گرامی.
خطای فوق نشان دهنده این هست که جدول مربوط به دسته بندی های افزونه K2 موجود نیست. برای حل مشکل خطا میبایست به دیتابیستون برید و از طریق phpmyadmin یک جدول دقیقا با نام _k2_categories ایجاد کنید.
و یا اینکه اساساً افزونه کی۲ رو حذف کنید تا این خطا هم چشم پوشی بشه.
موفق و سربلند باشید