Экспорт БД MySQL в file.sql

betik

Новичок
Экспорт БД MySQL в file.sql

У меня следущая проблема:
Нужно средствами PHP (и только) сделать полный дамп Базы данных в формат SQL (также как делает PHPMyADMIN)..
Вопрос же в следующем - существуют ли в принципе sql комманды (в mysql_query("blah-blah")) для экспорта в SQL?
SELECT .. OUTFILE|DUMPFILE совсем не то.
BACKUP TABLE судя по описанию тоже не то, к тому же у меня не заработало на МуСКЛ 3,21 без объяснения причин.
Может быть есть готовые какие-то решения для экспорта кроме PHPMyADMIN?
Заранее спасибо.
 

Bred Vilchec

Новичок
во-первых, можно глянуть сорцы самого PHPMyAdmin'a, там уж точно есть ответ.
 

betik

Новичок
2 BRED... Ну я примерно представляю что там написано в сорцах.. Даже думать не хочу - много мороки очень уж...
2 virakochi MySQLDUMP отличная утиль... Но у меняя её нет и не будет.

Всем спасибо, как оказалось решений подобных (готовых и бесплатных) достаточно много...
Мне больше всего понравился dumper - умеет и сливать дампы, и архивировать и заливать дампы...
Скачать тут http://www.woweb.ru/catalog/292/arch/161961.zip можно..
PS работает раз в 10 быстрее ПХПмайАдмина в плане дампов...
 

Alister

Новичок
а не подскажешь где этот модуль
в скрипте бегло покопался
нету там использования ф-и mail()
нет никаких соединений кроме mysql
не указано никак.
 

betik

Новичок
Да-да... Именно.. Никаких открытий соединений, ведения логов и прочего...
 

vovanium

Новичок
В Dumper'е есть глобальная статистика, он отправляет на сайт количество обработанных таблиц, строк, и мегабайт. Просто статистика использования, но для тех, кто страдает паранойей, добавлена опция отключения статистики.

P.S.: и качать желательно, с оф. сайта, а то в сборниках скриптов версии не самые свежие.
http://zapimir.net/skdumper/

P.P.S: и еще такая деталь с "МуСКЛ 3,21" работать он не будет, слишком уж она древняя. Но с последними 3.23.x и выше проблем быть не должно. Единственное поддержка MySQL 4.1.x появилась в версии 1.0.5.
 

betik

Новичок
Большое спасибо за линк.. На вовебе все линки выдернуты в архиве..
Имелось виду 3.23...
Но встала новая проблема.
Хостер без предупреждения апгрейдил базу до 4.1 с 3.23.
МуСКУЛ 3.23 не хочет съедать дамп от 4.1
Что делать? =(
Спасибо )
 

Ventura_forever

Новичок
Alister
betik
Не обязательно мылом отправлять. Ты сам данные отправляешь.
строки 268-269
Да, теперь есть возможность отключения. В первых версиях ни слова об этом небыло.
 

betik

Новичок
2GAS: Да это я знаю... Но нету у мяне доступа к мускулдамп... И не будет никогда. Единственное что я вижу, как решение ситуации - ужасно оффтопичное решение =)
Ставить паралельно мускулу 3,23 мускул 4.1, сливать дамп с хоста дампером, заливать его дома в мускул 4.1, из мускула снимать мскулдампом в режиме совместимости с 3,23, заливать в мускул 3.23 полученый дамп, дампером снимать дамп и скармливать его удалённому дамперу, который в свою очередь зальёт его на мускул 3.23 на сервере.
Крутовато.
2Вентура:
Я жестоко изменил дампер, так что ориганальную 268 строку мне не найти =)
Ты имеешь ввиду там, где что-то яваскриптом выводится, в котором я ничего не понимаю, это и есть оно?
 

Gas

может по одной?
betik
да вроде написать реги, которые вырежут всё ненужное, чтоб mysql 3.23 понял дамп будет проще.
 

betik

Новичок
Ну я же не такой спец в Мускле чтобы сделать это...
Реги написать - не вопрос. Вопрос в том, что в этих регах?
Я нашёл три принципиальных отличия в том что выдаёт мускул 3,23 и 4 (при создании скрипта для создания таблиц ;))... Но у меня таблицы проще некуда. А если будет крутая таблица?
И чует моя задница что проблема 3,23 - 4,1 скоро заявит о себе ещё громче, в ракурсе доработки различных скриптов, переездов с хостинга на хостинг и все такое прочее..
PS всё это - ИМХО
 

vovanium

Новичок
betik
Хостер без предупреждения апгрейдил базу до 4.1 с 3.23.
Используй дампер 1.0.5 для бекапа и восстановления. Там проблема не в сложности таблиц, в MySQL 4.1 в структуре таблиц добавились некоторые вещи, из-за чего дампы нельзя выполнить на более старой версии MySQL. На 3.23 правда не пробовал, но пробовал переносить 4.1 -> 4.0, а поскольку в 4.0 вроде особых несовместимых нововведений не было, то и 3.23 должна работать. Но если будут проблемы пиши.
 

betik

Новичок
Есть проблемы.
Например: создание страниц

CREATE TABLE `news` (
`id` int(11) unsigned NOT NULL auto_increment,
`_date` datetime NOT NULL default '0000-00-00 00:00:00',
`short` varchar(255) default NULL,
`full` text,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=116 ;

МуСКУЛ 3.23 не нравится:
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=116 ;

Или:


CREATE TABLE `phpbb2_search_wordlist` (
`word_text` varchar(50) character set latin1 collate latin1_bin NOT NULL default '',
`word_id` mediumint(8) unsigned NOT NULL auto_increment,
`word_common` tinyint(1) unsigned NOT NULL default '0',
PRIMARY KEY (`word_text`),
KEY `word_id` (`word_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3165 ;

Тут помимо 1 варианта:
character set latin1 collate latin1_bin

И Думается мне что всяких таких вещей довольно таки много...
 

vovanium

Новичок
betik
Ты этот дамп с помощью дампера 1.0.5 делал, а то это больше похоже на дамп phpmyadmin?
 

vovanium

Новичок
Это ПХПмайАдмин. Но принципиальной разницы нету.
Разница в том, что дампер корректирует эти вещи для совместимости с более старыми версиями MySQL. А так вообще принципиальной разницы нет:)
 

betik

Новичок
Кхм... Я создал дамп Дампером на одном хосте (Му.4), залил его на другой(Му3.23), попытался залить - сплошные ерроры...
 
Сверху