Как да поправите грешката „Error #1142 INSERT Command Denied to User“?

Помощ » Обща информация » MySQL » Как да поправите грешката „Error #1142 INSERT Command Denied to User“?

Наличието на собствен уебсайт е едно от най-полезните преживявания, които можете да имате онлайн, но от време на време може да получавате привидно случайни грешки без видима причина. Една от най-объркващите грешки е „MySQL Error #1142 INSERT Command Denied to User“. За разлика от други грешки, този конкретен проблем може да се появи в почти всички системи за управление на съдържанието, в phpMyAdmin и дори в код, който сте написали сами. В тази статия ще научим какво причинява грешката и ще разгледаме възможните решения на този проблем.
 

Причина за грешката

Както подсказва съобщението „Error #1142 INSERT Command Denied to User“, основният проблем е, че командата INSERT е неуспешна. Командата INSERT се използва за добавяне на нова информация към вашата база. Така че, потенциално можете да срещнете този проблем, когато актуализирате уебсайта си с нова информация или когато се опитате ръчно да вмъкнете нови данни във вашата база.

Тъй като това е проблем, свързан с базата, той може да се появи на всеки уебсайт, който използва база за съхраняване на информация. Проблема може да засегне всичко – от световноизвестни системи за управление на съдържанието като WordPress, Joomla и Drupal, до малки PHP уебсайтове, които може да сте кодирали сами.

Грешката е най-разпространена в средите за споделен хостинг. Планове като нашия безплатен хостинг и нашите платени планове попадат в тази категория. Причината е, че плановете за споделен хостинг често налагат ограничение, известно като квота, на количеството информация, която може да се съхранява в една база данни.

Какво представлява квотата на базата?

Тъй като повече информация се съхранява в базата, размерът й непрекъснато нараства. Ето защо хостинг компаниите често налагат квота за базата, която по същество е ограничение за дисковото пространство на вашата база. Когато достигнете това ограничение, вече нямате право да добавяте нова информация. От техническа гледна точка, когато достигнете лимита за съхранение на вашата база, потребителят на вашата база губи своите права за INSERT.

Как можете да проверите квотата за вашата база и текущия размер?

Можете лесно да проверите квотата и текущия размер на вашата база през Мениджъра на бази в колоната Квота.

Имайте предвид, че тази информация не се обновява в реално време. Затова може да отнеме няколко часа преди да видите действителния размер на базата.
 

Как да поправите „Error #1142 INSERT Command Denied to User“?

Има три начина по които можете да се справите с тази грешка:

  • Можете да оптимизирате базата за да намалите размера и без да изтривате никаква информация
  • Можете да изтриете информация, която вече не Ви е нужна
  • Можете да ъпгрейднете до план, който предоставя повече квота за базата

Оптимизиране на базата

Оптимизирането на базата е едно от най-добрите методи понеже Ви позволява бързо да намалите размера на базата без да изтривате каквато и да е информация. Единствения минус, е че при големи сайтове това решение е само временно.

За да оптимизирате вашата база следвайте тези стъпки:

  1. Влезте в контролния панел
  2. Отворете Мениджъра на бази
  3. Отворете раздела за Управление на базата
  4. Кликнете на Оптимизация с 1 клик
  5. Може да отнеме малко време оптимизирането на базата да се отрази на проблема. За да избегнете чакането скролнете по-надолу в раздела за Управление и изберете Възстановяване на правата с 1 клик. Това веднага ще ви даде пълен достъп до базата и ще можете да продължите с работата си.

За повече информация относно оптимизирането на базата може да прочетете нашата статия тук.

Изтриване на ненужна информация от базата

Друг вариант за намаляване размера на базата е да изтриете ненужната информация от нея. Можете да направите това през phpMyAdmin като използвате DROP (delete) функцията за цели таблици или за специфични редове от информация. Можете да прочетете повече как да направите това от статията ни за намаляване размера на базата.

Някои уебсайтове предлагат възможността да запазвате всяко посещение на сайта за по-нататъшен анализ по-късно. Такава информация често се съхранява във вашата база. Въпреки че това може да е полезна функция за някои, тя може много бързо да заеме по-голямата част от вашата база, особено ако имате редовни посетители на сайта, които прекарват много време на вашия сайт. Деактивирането на тази функционалност за регистриране и премахването на съществуващите регистрационни файлове от базата може да освободи стотици мегабайта.

Друг аспект на управлението на уебсайт, който може да консумира много място за съхранение на база, е генерирано от потребителите съдържание, като например коментари на читатели в публикация в блог. Най-малкото трябва да се уверите, че не се публикуват СПАМ коментари, тъй като не са полезни и заемат ценно място. Още по-добър подход би бил да се обмисли използването на услуга като DISQUS, тъй като тя не само ви помага да се предпазите от коментари от СПАМ, но дори съхранява всички коментари на собствените си сървъри, така че изобщо да не заемат място във вашата база.

Ъпгрейд към по-добър план

Последния вариант е закупуването на по-добър хостинг план, който да предлага повече квота за вашата база. Нашия Zetta Max план и нашите Semi-Dedicated планове ще Ви предоставят неограничено дисково пространство за базите. Можете да ъпгрейднете хостинг плана, който ползвате от страницата тук.

Ако използвате VPS и срещнете тази грешка, то най-вероятно сте запълнили дисковото пространство на вашия сървър. Ако това е проблема можете да поръчате допълнително дисково пространство за вашия VPS тук.
 

Заключение

Когато използвате сървър за споделен хостинг, можете да разрешите грешката MySQL error #1142 “INSERT command denied to user” като се уверите, че текущото ви използване на база данни не надвишава квотата на вашата база. Това може да стане чрез оптимизиране на базата данни, изтриване на данни или просто увеличаване на квотата на вашата база. За съжаление, някои системи за управление на съдържанието използват различни формулировки за точно същата грешка, така че ако вашият хостинг план ограничава максималния размер на вашата база, винаги е добра идея редовно да проверявате дали не достигате лимита си за съхранение.

Готов ли си да създадеш своя сайт?

Pin It on Pinterest

Share This