Блог на SuperHosting.BG

30мар/12

Голяма MySQL базa данни – ами сега!?

Голяма MySQL база данниАко ви попитаме с какъв инструмент администрирате своите бази данни – може би в над 90% от случаите, отговорът ще е phpMyAdmin. А когато с него не можете да извършите определена функционалност? В тази статия от съветите на support – a на нашата хостинг компания СуперХостинг.БГ, ще ви подскажем още няколко лесно реализуеми хитринки, с които ще можете да импортирате/експортирате големи по размер бази данни. Тези операции отнемат повече време и не могат да бъдат изпълнени през phpMyAdmin, затова нашия колега Кирил (или както му казваме в екипа - Кирето) се постара да представи други варианти по максимално достъпен и полезен начин. Вижте как и очакваме да ни питате за всичко, което ви интересува по темата, а защо не и да споделите примери от вашата практика! :)

Импорт/експорт чрез SSH (Secure Shell)

1. Импорт на MySQL база данни

За да импортирате SQL файл в дадена MySQL база данни, първо трябва да го разположите в директория в хостинг акаунта. След това самият импорт се осъществява чрез следната команда:

mysql -h127.0.0.1 -uDB_USERNAME -p DATABASE < /home/cPanel_USERNAME/db.sql

Легенда:

  • DB_USERNAME - името на потребителя за базата данни (можете да използвате и основния MySQL потребител);
  • DATABASE - името на базата данни;
  • /home/cPanel_USERNAME/ - пътят до директорията, в която е качен SQL файла;
  • db.sql - името на SQL файла.

На следващата стъпка ще излезе съобщение да въведете паролата за потребителя към базата или за основния MySQL потребител, ако използвате него.

2. Експорт на MySQL база данни

Експортът се осъществява посредством следната команда:

mysqldump -h127.0.0.1 -uDB_USERNAME -p DATABASE > /home/cPanel_USERNAME/db.sql

След изпълнението на mysqldump, експортираният SQL файл е разположен в /home директорията на хостинг акаунта, ако разбира се не сте посочили друга директория.,

Информация за този начин на импорт и експорт, можете да намерите и в нашата помощна страница на следния адрес: Импорт / експорт на база данни чрез SSH

Импорт/експорт чрез Cron Job

Ако не разполагате с SSH достъп или за хостинг плана, който ползвате, не се предлага такъв (СуперСтарт), бихте могли да настроите изпълнението на импорт/експорт като Cron Job, който да изпълните еднократно. Задаването на Cron Job става от cPanel -> "Автоматизирани задачи (Cron jobs)". Препоръчваме Ви да го настройте на 5, 10 или 15 минути, в зависимост от размера на базата данни. Зададеният Cron Job трябва да изглежда по един от следните начини, в зависимост от това дали извършвате импорт или експорт:

Cron Job команда за импорт на голяма MySQL база данни

Cron Job команда за импорт на голяма MySQL база данни

Cron Job команда за експорт на голяма MySQL база данни

Cron Job команда за експорт на голяма MySQL база данни

Тук отново е необходимо да заместите MySQL потребителя, паролата, базата данни, SQL файла и пътя до него с вашите.

Повече информация, как да създадете Cron Job, отново ще намерите в нашата помощна страница на следния адрес: Cron Jobs - за какво и как се ползва?

Съвет от Кирето:

След успешното приключване на импорта или експорта, не забравяйте да изтриете Cron Job- а. В противен случай те ще се изпълняват периодично и циклично. :)

Кой от посочените методи използвате вие? А какво друго можете да добавите по темата?

Коментари (13) Връзки за обратно следене (0)
  1. Как ме радвате с такива статии :) Браво, много полезно.

    Добра работа адаш!

    Впрочем не е лошо да включите тази статия в документацията си. Със сигурност ще е полезна на много хора.

  2. Трика с крон джоб е супер – никога нямаше да се сетя сам :)

  3. Страхотна идея – Благодарско :)

  4. И при мен вече phpMyAdmin не работи. Базата данни стана почти 1GB.

  5. Това с cronjob ми хареса. :) И ме навежда на мисълта дали пък това не е добър вариант да си правя еждеседмичен, да речем, бекъп на базата? :/

    • Здравейте Михаил,

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

  6. Малко са хората които биха споделили такива важни съвети :)

  7. http://www.ozerov.de/bigdump/ Този скрипт също върши страхотна работа.

  8. MySQLDumper също върши страхотна работа, последно го пробвах с едни 7 милиона записа (към 550 МБ размер на dump файла) и нямаше проблеми.
    А за това с cron-а направо ме е срам че не съм се сетил :)

    • Забравих да спомена че за по-големички бази е желателно да се пипнат настройките на mysqldumper-а преди да се пусне import/export-а. Резултата при мен беше че вместо за няколко часа нещата станаха за 20-на минути.
      Въпросните настройки са като се отиде на Configuration->General
      Memory limit да му се цъкне autodetect
      GZip compression да е not activated
      Optimize Tables before Backup също да е not activated

      и това е.

  9. На скоро ми се наложи да премествам сайт с голяма база данни и ако тези съвети ги бях видял по-рано щяха да ми бъдат много полезни. Аз доста се поизмъчих с различни компресии и импортване на таблиците по отделно.


Оставете коментар

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Все още няма връзки за обратно следене.