Архивиране и управление на MySQL бази от командни линии
MySQL базите данни играят неразделна част от много компютърни системи, особено когато става въпрос за уеб хостинг и интернет услуги. С всички тези ценни данни, които се поверяват на базата данни, е важно да се създават резервни копия и е важно да се знае как да се администрира сървърът на базата данни. MySQL включва два мощни инструмента за тези задачи: "mysqldump" и "mysqladmin". Както подсказват имената им, първата е за архивиране, а другата е за администрация. Управлението на тези две команди е от първостепенно значение, ако искате да станете компетентен администратор на MySQL.
Архивите
Командата mysqldump
създава файл с SQL изрази, които при стартиране ще създадат същите таблици и данни, които са в базата данни. Тя може да се използва като метод за архивиране или като лесен начин за копиране на база данни от един сървър в друг. Той може също така да създаде продукция като стойности, разделени със запетая (CSV) или дори в XML. Тъй като полученият резултат е текстов файл на SQL изявления, администраторите имат гъвкавостта да разглеждат и променят файла с дъмп.
За да заредите една таблица в база данни, използвайте mysqldump както следва:
mysqldump -u root -p testdb име на таблицата
Където "testdb" е името на базата данни и "tablename" е името на таблицата, която желаете да заредите. Опцията "-u" определя кой потребител на MySQL да използва по време на дъмп и "-p" казва mysqldump, за да получи паролата интерактивно (т.е. ще трябва да напишете паролата, когато бъдете подканени). Потребителят трябва да има достъп за четене до базата данни, която е обект на дъмпинг (технически потребителят се нуждае от привилегиите SELECT, SHOW VIEW, TRIGGER и LOCK TABLES). Потребителят "root" обикновено е конфигуриран (заедно с парола) по време на инсталирането на сървъра на MySQL.
Резултатът ще бъде изпратен директно в конзолата. За да изпратите изхода на файл и да зададете паролата на командния ред (полезна за скриптове), използвайте:
mysqldump -u root - парола = 'тайна' testdb име на таблица> testdb_table_backup.sql
Където "тайна" е паролата за корен на потребителя и име на таблицата е името на таблицата, която искате да архивирате. Трябва да замените "_table_" в името на файла с истинското име на таблицата. Полученият файл "testdb_table_backup.sql" ще съдържа всички SQL изрази, необходими за пресъздаване на таблицата.
Можете да предоставите повече от един параметър за таблици, за да архивирате няколко таблици, или ако го пропуснете напълно, тогава цялата база данни ще бъде изхвърлена. Например:
mysqldump -u корен - парола = 'тайна' testdb> testdb_backup.sql
Полученият файл "testdb_backup.sql" ще съдържа дъмп от всички таблици в базата данни.
За да --databases
повече от една база данни, трябва да използвате опцията --databases
. Например:
mysqldump -u корен - парола = 'тайна' - бази данни testdb testdb2> testbd_testdb2_backup.sql
За да архивирате всички таблици от всички бази данни на MySQL сървъра, използвайте опцията " --all-databases
":
mysqldump -u корен - парола = 'тайна' - всички бази данни> all_dbs.sql
Admin
Инструментът mysqladmin се използва за извършване на административни задачи, включително проверка на конфигурацията и текущото състояние на сървъра, създаване и пускане на бази данни и т.н. За да създадете база данни, наречена "testdb", използвайте:
mysqladmin -u корен -p създадете testdb
Опциите "-u" и "-p" работят същите като при командата mysqldump.
За да изтриете база данни заедно с всичките си таблици, използвайте подкомандата "drop":
mysqladmin -u root -p drop testdb
След като потвърдите изтриването на базата данни, тя заедно с всичките й таблици ще бъде премахната от сървъра.
Командата mysqadmin може да извлича различни статистически данни от MySQL сървъра. Изпробвайте под-командите "статус" и "разширено състояние". Най-простата заявка за състояние е командата "ping", която проверява дали сървърът е жив. Ето един пример за това как да го използвате:
mysqladmin -u корен - парола = "таен" пинг
Можете да получите подробна информация за командата mysqldump от страницата за документация на MySQL Програма за архивиране на база данни, както и за командата mysqladmin от Клиента за администриране на страница MySQL Server.
Ако имате някакви въпроси относно посочените по-горе примери, моля, попитайте в секцията за коментари по-долу.