LinuxForum.Fans
Тема

как сделать дамп баз данных

Автор: Rassol2 12 сообщений 3517 просмотров
#376327

Столкнулся с задачей, есть сервер с mysql и там есть около 30 баз данных с разных сайтов.
mysql будет останавливаться, а базы нужно бы сохранить.
Но вот как сделать дамп всех баз, да так что бы каждая база была отдельно ?
Базы данных имеют свои названия, и хотелось бы их сохранить.

#376338

Rassol2, Держи. Написал для тебя маленький скриптик
[console]#!/bin/bash

BASE_DIR="/home/xlin/"
mysqlshow -u root -p PASSWORD > base.txt

cat base.txt | grep -v "+" | tr '|' ' ' | while read line
do
echo -e "${line}"
if ! [[ $line == "Databases" || $line == "information_schema" || $line == "performance_schema" ]]; then
mysqldump -u root -p PASSWORD -f $line > ${BASE_DIR}/${line}.sql
else
echo "NOT"
fi
done
[/console]

#376361

спасибо теперь разобраться бы в нем.

#376362

как я понял мне нужно прописать только пароль в этой строке

text
mysqldump -u root -p PASSWORD -f $line > ${BASE_DIR}/${line}.sql

Ну и создать директорию /home/xlin/

И все скрипт можно запускать.

#376365

Эту строяку

text
mysqlshow -u root > base.txt

заменить на

text
mysqlshow -u root -pPASSWORD > base.txt  - только PASSWORD на свой замени

И ту которую ты сказал тоже поправить.

Папку указать любую. Создай например /home/user/base_bak и пропиши ее в скрипте.

#376368

еше рас спасибо все отработало на ура.
Записали себе в черновичок.

#376377

Спасибо за скриптик, пригодится в копилку.

#376479

"Rassol2" написал:
как я понял мне нужно прописать только пароль в этой строке

mysqldump -u root -p PASSWORD
ага. И твой пароль будет виден ВСЕМ на этом сервере(у кого есть шелл).

пароль можно безопасно сохранить в файле ~/.my.cnf того юзера, кто бекапит. И поставить на этот файл права 0600.

подробнее в man mysqldump и в http://dev.mysql.com/doc/refman/5.1/en/password-security-user.html
#376481
"drBatty" написал:
пароль можно безопасно сохранить в файле ~/.my.cnf того юзера, кто бекапит. И поставить на этот файл права 0600

Спасибо. Понадобится инфа.

#376489
Rassol2 написал:
mysql будет останавливаться, а базы нужно бы сохранить.

А в чем проблема архивировать файлы баз данных на остановленном mysql? Здесь простор ограничен только фантазией.

#376493

"Cruiser78" написал:
А в чем проблема архивировать файлы баз данных на остановленном mysql?
это весь сервер надо останавливать/запускать. Да и вообще через задницу. А если другая версия mysql?

Короче: так никто не делает, и я это уже долго и упорно пытался объяснить. Но видно никто не желает делать так, как надо. У нас, у русских, так всегда было принято -- сделать абы как, лишь-бы работало. Авось не сломается…

PS: ТСу хотелось не всё, а по базам, коих у него 30 штук. См. первый пост.
#376495

drBatty написал:
[quote="Cruiser78"]А в чем проблема архивировать файлы баз данных на остановленном mysql?
это весь сервер надо останавливать/запускать. Да и вообще через задницу. А если другая версия mysql?

Короче: так никто не делает, и я это уже долго и упорно пытался объяснить. Но видно никто не желает делать так, как надо. У нас, у русских, так всегда было принято -- сделать абы как, лишь-бы работало. Авось не сломается…

PS: ТСу хотелось не всё, а по базам, коих у него 30 штук. См. первый пост.[/quote]
Почти в яблочко. Сервер будет полностью отключен. И мне по сути не имеет значения что дальше с ресурсами которые не на нем крутились. Но если есть лишние гигабайты почему бы не слить все и не положить в укромное место.
В данном случаи скрипт выполняет свои задачи.
Войдите или зарегистрируйтесь, чтобы ответить.