Как да направим mysql dump на база данни в отделни файлове за всяка таблица
За да направите дъмп на таблиците от дадена база първо трябва да създадете (може да използвате и същеструваща) директория, която задължително трябва да бъде достъпна за писане и чете от системния потребител на mysql. Най-често той се казва `mysql`.
Ето и командите за създаване на папка и смяната на нейните права:
# mkdir /tmp/tmpdump/ # chown mysql.mysql /tmp/tmpdump/
Следващата стъпка е да стартирате mysqldump с параметри за дъмпване на база като окажете, че искате това да става в отделни файлове и във вече създадената временна папка:
# mysqldump --user=dbuser --password --tab=/tmp/tmpdump/ dbname
Не забравяйте да замените `dbuser` с акаунта, с който достъпвате съответната база (може да бъде и с root, ако разполагате с неговата парола), както и `dbname` с името на базата, която искате да експортнете.
Параметъра `--tab` е малко известен, но много полезен метод за създаване на отделни файлове за всяка таблица от избраната база данни в MySQL.
Съществуват много и различни методи за създаване на отделни файлове, но повечето от тях изискват писане на bash или други скриптове, което ги прави доста по-сложни за изпълнение спрямо посочения по-горе начин.
Ето например едит такъв. Запишете във файл с име dump.sh следните команди:
#!/bin/sh db="dbname" for i in $(mysql $db -e "show tables;"|grep -v Tables_in_); do echo "Dumping $i" mysqldump -K $db $i > /tmp/tmpdump/$i".sql"; done
След което изпълнете скрипта в конзолата:
# sh dump.sh
Внимание: примерите от тази статия са подходящи за Linux операционни системи. Под Windows част от командите ще изискват да използвате други пътища до изпълнимите файлове и пътища на папките.