IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   dump MySQL-я (http://www.imho.ws/showthread.php?t=78172)

kvv213 22.01.2005 14:05

dump MySQL-я
 
А как можно дампить мускуль?

Есть эккаунт на хостинге, есть там мускуль и cpanel. Хочется периодически дампить базу в файл, архивировать ее, а потом по FTP утягивать.

Как такое можно сделать?

В принципе можно и по шедуллеру или скрипт какой дерагть.

SergoZD 22.01.2005 14:11

Site Keeper Dumper LE
 
Вложений: 1
Неплохой дампер баз, сам его юзаю.
Во вложении версия 1.0.4.

И ещё, в CPanel есть же Backup, там можно бекапнуть и скачать всю базу, а при необходимости потом восстановить.

Hubbitus 22.01.2005 14:12

Цитата:

kvv213:
Есть эккаунт на хостинге, есть там мускуль и cpanel.
Дак в cpanel обычно и PHPMyAdmin есть для этого, он с дампами базы прекрасно справляется, может и сам заархивировать сразу.

RaZEr 22.01.2005 14:34

Цитата:

В принципе можно и по шедуллеру или скрипт какой дерагть.
запускай cron'ом mysqldump, если достаточно прав. Иначе никак.

kvv213 22.01.2005 15:33

Цитата:

Сообщение от Hubbitus
Дак в cpanel обычно и PHPMyAdmin есть для этого, он с дампами базы прекрасно справляется, может и сам заархивировать сразу.

Так там ручками надо, а мне автоматом. Из зеркалировалки.

Цитата:

Сообщение от SergoZD
Неплохой дампер баз, сам его юзаю.
Во вложении версия 1.0.4.

И ещё, в CPanel есть же Backup, там можно бекапнуть и скачать всю базу, а при необходимости потом восстановить.

По виду, почти то, что надо. Осталось только напильником обработать :-)

А насчет спанели - надо автоматом, а не ручками.

Hubbitus 22.01.2005 15:43

Цитата:

kvv213:
Так там ручками надо, а мне автоматом. Из зеркалировалки.
Да, пардон, не обратил внимания на конец твоего сообщения. Ну напиши скриптик, если невозможно предложение RaZEr'а, используя SELECT INTO {OUTFILE | DUMPFILE} 'file_name' export_options, который и будет этот самый дамп делать, и запускай его по Крону.

А вообще, если это задача зеркалирования, может можно договориться с хостером о разрешении прямого удаленного коннекта с определенного IP зеркала к БД, хотябы на выборку? Чтобы не изобретать велосипедов, и не гемороится?

kvv213 22.01.2005 15:44

Цитата:

Сообщение от RaZEr
запускай cron'ом mysqldump, если достаточно прав. Иначе никак.

Вроде в cpanel-е есть какая-то настройка крона, а какая коммандная строка для этого нужна? Под виндусом понятно. А тут как -то не очень.

Hubbitus 22.01.2005 15:49

Цитата:

kvv213:
Вроде в cpanel-е есть какая-то настройка крона, а какая коммандная строка для этого нужна?
Ну какая, обычный shell, или из скриптов выполнение системных комманд (если на хостинге конечно не запрщены все эти функции из соображений безопасности): exec, system, passthru...

kvv213 22.01.2005 15:59

Цитата:

Сообщение от Hubbitus
Да, пардон, не обратил внимания на конец твоего сообщения. Ну напиши скриптик, если невозможно предложение RaZEr'а, используя SELECT INTO {OUTFILE | DUMPFILE} 'file_name' export_options, который и будет этот самый дамп делать, и запускай его по Крону.

А вообще, если это задача зеркалирования, может можно договориться с хостером о разрешении прямого удаленного коннекта с определенного IP зеркала к БД, хотябы на выборку? Чтобы не изобретать велосипедов, и не гемороится?

Удаленный доступ к БД делать не очень хочется, поскольку для злобных хакеров будет лишний повод. Да и дома ставить мускуль то же нет особого желания.

А вот SELECT INTO выглядит более правильно, только вот не очень понимаю, как можно получить список всех таблиц, что бы их поочереди записать в файл.
Хотя в документации мускуля написано, что файл не должен существовать, по всей видимости он его будет создовать заново....

Цитата:

Сообщение от kvv213
Удаленный доступ к БД делать не очень хочется, поскольку для злобных хакеров будет лишний повод. Да и дома ставить мускуль то же нет особого желания.

А вот SELECT INTO выглядит более правильно, только вот не очень понимаю, как можно получить список всех таблиц, что бы их поочереди записать в файл.
Хотя в документации мускуля написано, что файл не должен существовать, по всей видимости он его будет создовать заново....

Был у меня как-то скриптик, который длела то, что нужно. На перле. Только он базу по почте посылал. Но потерялся куда-то :-(

Hubbitus 22.01.2005 16:15

Цитата:

kvv213:
Удаленный доступ к БД делать не очень хочется, поскольку для злобных хакеров будет лишний повод. Да и дома ставить мускуль то же нет особого желания.
Во-первых удаленный доступ можно сделать только для определенного IP (или диапозона), тоесть хакерам это ничего не даст, если будет прописан только определенный адрес. Во-вторых можно дать доступ только на селект, что тоже не особенно критично (хотя может конечно помочь хакерам :) , если получат доступ) А ставить БД дома и не обязательно, если будет удаленный доступ, то можно юзать кучу утилиток, например MySQL Front прямо из дома (с другого компа).
Цитата:

kvv213:
А вот SELECT INTO выглядит более правильно, только вот не очень понимаю, как можно получить список всех таблиц, что бы их поочереди записать в файл.
Для получения списка таблиц можно юзать show tables; , только неужели ты сам не знаешь какие у тебя есть таблицы :biggrin:

Цитата:

kvv213:
Был у меня как-то скриптик, который длела то, что нужно. На перле. Только он базу по почте посылал. Но потерялся куда-то :-(
Долго ли написать скриптик отправляющий файл по почте :)

zaartix 23.01.2005 23:59

есть превосходная прога, называется www.mysql-front.com
интерфейс на русском, может работать через шлюз (на сервер заливается php-скрипт, прога коннектится к нему)
скачать:
http://www.mysql-front.com/pub/MySQL-Front_Setup.exe

kvv213 24.01.2005 09:47

Цитата:

Сообщение от zaartix
есть превосходная прога, называется www.mysql-front.com
интерфейс на русском, может работать через шлюз (на сервер заливается php-скрипт, прога коннектится к нему)
скачать:
http://www.mysql-front.com/pub/MySQL-Front_Setup.exe

Не, немного не то. Мне не нужно с ней работать. Мне нужно базу только бекапить автоматом. В виде дампа. И класть этот файлик себе на машину на всякий случай.

Цитата:

Сообщение от Hubbitus
Во-первых удаленный доступ можно сделать только для определенного IP (или диапозона), тоесть хакерам это ничего не даст, если будет прописан только определенный адрес. Во-вторых можно дать доступ только на селект, что тоже не особенно критично (хотя может конечно помочь хакерам :) , если получат доступ) А ставить БД дома и не обязательно, если будет удаленный доступ, то можно юзать кучу утилиток, например MySQL Front прямо из дома (с другого компа).

Для получения списка таблиц можно юзать show tables; , только неужели ты сам не знаешь какие у тебя есть таблицы :biggrin:


Долго ли написать скриптик отправляющий файл по почте :)

Хм. Я вот так подумал-подумал. А вот select into file будет туда только данные скидывать или целиком структуру с CREATE TABLE и прочими индексами?

Hubbitus 24.01.2005 13:23

А попробовать лень :) ? Только данные вобщем-то.
А чего так забылось, осталось без ответа предложение RaZEr'а? Если разрешает хостинг запускать, дак mysqldump - и не нужно ничего больше изобретать, там и со структурой можно и дез, и еще куча опций и возможностей.....

fuldon 24.01.2005 13:31

Подскажите, пожалуйста, как можно используя shell сделать backup определенных таблиц базы данных?
То есть база очень большая и нужно поделить ее на куски.
В идеале вообще нужно даже дамп некоторых таблиц сделать пополам.

Где об этом прочитать? Подскажите команды?

kvv213 24.01.2005 14:05

Цитата:

Сообщение от Hubbitus
А попробовать лень :) ? Только данные вобщем-то.
А чего так забылось, осталось без ответа предложение RaZEr'а? Если разрешает хостинг запускать, дак mysqldump - и не нужно ничего больше изобретать, там и со структурой можно и дез, и еще куча опций и возможностей.....

У меня вопрос - как это сделать?
Телнетом меня туда почему-то не пускает.
Могу зайти по FTP - Far-ом.
Могу из cpanel-и что-то поделать, в часности задачи крона делать.
Только вот вопрос, со строкой для mysqldump, как его вызывать?
Просто так вот ввести и все?

Sheryld 24.01.2005 15:59

Цитата:

miXei:
Подскажите, пожалуйста, как можно используя shell сделать backup определенных таблиц базы данных?
То есть база очень большая и нужно поделить ее на куски.
В идеале вообще нужно даже дамп некоторых таблиц сделать пополам.

Где об этом прочитать? Подскажите команды?
mysqldump -ct --host=hostname --user=username --password=password database tablename1 tablename2 tablename2 > /path2file_fromroot/filename

-c полные insert
-t не вставлять информацию о создании

подробнее: смотри mysql man->tools->mysqldump

либо: mysqldump --help

Hubbitus 24.01.2005 17:06

Цитата:

miXei:
Подскажите, пожалуйста, как можно используя shell сделать backup определенных таблиц базы данных?
То есть база очень большая и нужно поделить ее на куски.
В идеале вообще нужно даже дамп некоторых таблиц сделать пополам.

Где об этом прочитать? Подскажите команды?
Я уже подсказывал :) -
Цитата:

Hubbitus:
SELECT INTO {OUTFILE | DUMPFILE} 'file_name' export_options
Или тотже mysqldump с ключом --tables и указанием таблиц.
Цитата:

kvv213:
У меня вопрос - как это сделать?
Телнетом меня туда почему-то не пускает.
SSH нету? Тогда попробуй через Веб-шелл:
Цитата:

Hubbitus:
из скриптов выполнение системных комманд (если на хостинге конечно не запрщены все эти функции из соображений безопасности): exec, system, passthru...

scan4u 27.01.2005 17:46

Рекомендую Indexsoft.MySQL.Backups.Manager.v2.31.CGI.
Группа DGT недавно его занулила :) Можно скачать из их сайта :)

kvv213 27.01.2005 22:34

Цитата:

Сообщение от scan4u
Рекомендую Indexsoft.MySQL.Backups.Manager.v2.31.CGI.
Группа DGT недавно его занулила :) Можно скачать из их сайта :)

А оно часом мою же базу не будет высылать этим товарищам по почте? :-) 50 тысяч строк кода просматривать тяжеловато :-)

kvv213 27.01.2005 23:41

Цитата:

Сообщение от Sheryld
mysqldump -ct --host=hostname --user=username --password=password database tablename1 tablename2 tablename2 > /path2file_fromroot/filename

-c полные insert
-t не вставлять информацию о создании

подробнее: смотри mysql man->tools->mysqldump

либо: mysqldump --help

Во, попробвал через крон через cpanel:
mysqldump -ct --host=localhost --user=master --password=zopa base_cm > /public_html/239.m

Оно мне выдало вот что:
/bin/sh: line 1: /public_html/239.m: No such file or directory

Что это может означать?

Hubbitus 28.01.2005 01:19

Цитата:

kvv213:
Оно мне выдало вот что:
/bin/sh: line 1: /public_html/239.m: No such file or directory

Что это может означать?
Ну помоему только то что написано - что неправильный путь /public_html/239.m :ржать:

Попробуй указать полный путь от корня сервера, ну или относительный правильно...

kvv213 28.01.2005 10:08

Цитата:

Сообщение от Hubbitus
Ну помоему только то что написано - что неправильный путь /public_html/239.m :ржать:

Попробуй указать полный путь от корня сервера, ну или относительный правильно...

Хм.... А как его узнать - от корня севера? Мне же не показывает его. И вижу только свою корневую диру.
239.m это файл, куда я хочу что бы оно положилось. А /public_html/ такой каталог есть в моей дире.

Hubbitus 28.01.2005 12:44

Цитата:

kvv213:
Хм.... А как его узнать - от корня севера? Мне же не показывает его.
Ну во-первых это где-то у хостера должно быть написано, он часто нужен. А во-вторых, узнать просто и быстро: запусти PHP-скрипт из этой директории следующего содержания: <?echo getcwd()?> - он тебе выведет полный путь от корня.

scan4u 28.01.2005 13:41

:) Старик.. Если тебя пугают 50 тыс. строк кода :contract: , тогда ручками все делай.. :) Потому что никто тебе гарантии на нулл не даст :) Или купи у них лицензию :) Тогда 100% ничего не потеряешь

Hubbitus 28.01.2005 14:39

Дак ручками конечно, чего там делать-то, я не пойму - одна команда! Не понятно что там в 50 тыс. строк кода за дамп делается....

scan4u 28.01.2005 14:44

Старик... Чтоб много не писать... Тебе сюда:
Цитата:

h**p://www.indexsoft.com
... Найдешь скрипт этот + описалово + демку... И все станет понятно :)

RaZEr 28.01.2005 14:50

Цитата:

Не понятно что там в 50 тыс. строк кода за дамп делается
Вырезав галимотью, остается:
Цитата:

Send backups via email to one or more recipients for each database
Put backups on an FTP server
Automatically delete old backups by age

Hubbitus 28.01.2005 15:12

Цитата:

RaZEr:
Вырезав галимотью, остается:
И на релизацию этого нужно 50к строк кода???? :p

Сори за оффтоп.

scan4u 28.01.2005 15:19

ты наверное ничего не читал на сайте производителя сего чуда.. :)
Лично мне он очень понравился .. А если тебе нет, то просто молчи, когда люди тебе советы дают, а ты с ними не согласен! Потому что скрипт рулит!

RaZEr 28.01.2005 18:09

Цитата:

Лично мне он очень понравился .. А если тебе нет, то просто молчи, когда люди тебе советы дают
Разборки, - в привате.

Цитата:

ты наверное ничего не читал на сайте производителя сего чуда
Я почитал. И демку посмотрел. Не просветишь, чем так крут скрипт?

scan4u 28.01.2005 19:05

Цитата:

Сообщение от RaZEr
Не просветишь, чем так крут скрипт?

А ты не поделишся аналогичным по функциям нуллом? ;) Нет? А почему? ПОТОМУ ЧТО НЕТУ.... :) Вот потому и крут...

kvv213 29.01.2005 01:11

Цитата:

Сообщение от Hubbitus
Ну во-первых это где-то у хостера должно быть написано, он часто нужен. А во-вторых, узнать просто и быстро: запусти PHP-скрипт из этой директории следующего содержания: <?echo getcwd()?> - он тебе выведет полный путь от корня.

Ураааа. Заработалоооо!

А как бы теперь этот файлик сразу же заархивировать? Вывод надо куда-то перенаправить?

Sheryld 29.01.2005 02:14

это можно сделать, если создать например shell-скрипт, где:

1. dump
2. архивирование(tar...)

и уже сам shell-скрипт на cron.

можно также средствами perl, php, python, etc. упаковка в архив:

man your_archivator

kvv213 29.01.2005 02:36

Цитата:

Сообщение от Sheryld
это можно сделать, если создать например shell-скрипт, где:

1. dump
2. архивирование(tar...)

и уже сам shell-скрипт на cron.

можно также средствами perl, php, python, etc. упаковка в архив:

man your_archivator

А шелл скрипт это как? PHP пойдет?

Sheryld 29.01.2005 03:09

shell скрипт ― это скрипт на языке командного интерпретатора, установленного в системе(ОС).

пример, нужно запустить последовательно n php-скриптов с параметрами по расписанию. можно записать каждый скрипт в cron, рассчитать время и т.д.

а можно воспользоваться shell-скриптом, а в cron сделать запись о запуске этого shell-скрипта.

p.s. это уже конечно дело вкуса...

p.p.s. можно сделать упаковку в твоем примере средствами php, но, не факт что php скомпилирован соответствующим образом, а именно:

--with-zlib[=DIR]

RaZEr 29.01.2005 06:10

Цитата:

А как бы теперь этот файлик сразу же заархивировать? Вывод надо куда-то перенаправить?
mysqldump <агрументы для него> | gzip -c > /path/to/folder/`date "+%Y-%m-%d"`.gz

kvv213 30.01.2005 14:42

Цитата:

Сообщение от RaZEr
mysqldump <агрументы для него> | gzip -c > /path/to/folder/`date "+%Y-%m-%d"`.gz

Yes,Yes,Yes!
Молоток!
Работает!
Делает все, что нужно!
Урааа!


Часовой пояс GMT +4, время: 23:40.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.