Доброго дня.
Подскажите, есть ли способ с помощью mysqldump сделать бэкап с раздельными INSERT для каждой таблицы.
Т.е. вместо INSERT INTO table1 (...) VALUES (1...), (2...), (3...)
получить:
INSERT INTO table1 (...) VALUES (1...);
INSERT INTO table1 (...) VALUES (2...);
INSERT INTO table1 (...) VALUES (3...);???
Если mysqldump не умеет такого, тогда чем можно сделать, акромя phpMyAdmin?
Да можно, man mysqldump, у меня ушло две секунды, чтобы найти там нужную опцию, а у вас?
>Да можно, man mysqldump, у меня ушло две секунды, чтобы найти там
>нужную опцию, а у вас?Сейчас почитаю man mysqldump, ибо mysqldump --help ничем не помог.
Хотя.... если там одно и тоже....
Ну тогда вам стоит качать скилл "быстрый поиск в документации" :)
Нет необходимости читать весь man чтобы найти одну опцию, просто ищите по ключевым словам, например в вашем случае:
mysqldump --help |grep insert
--add-locks Add locks around insert statements.
-c, --complete-insert
Use complete insert statements.
--delayed-insert Insert rows with INSERT DELAYED;
-e, --extended-insert
--insert-ignore Insert rows with INSERT IGNORE.
--quick, --extended-insert, --lock-tables, --set-charset,
--create-options, --quick, --extended-insert,
complete-insert FALSE
delayed-insert FALSE
extended-insert TRUE
insert-ignore FALSEСразу бросается в глаза extended-insert, так как только эта опция включена и краткое описание других позволяет их исключить. Дальше ищем ее в man и читаем
o --extended-insert, -e
Use multiple-row INSERT syntax that include several VALUES lists. This results in a smaller dump file and speeds up inserts when the file is reloaded.А вообще поиск по insert в самом man выдает первым вхождением --extended-insert и --skip-extended-insert, поэтому две секунды это чтобы набрать /insert для поиска.
>
>А вообще поиск по insert в самом man выдает первым вхождением --extended-insert
>и --skip-extended-insert, поэтому две секунды это чтобы набрать /insert для поиска.
>В общем очерь рад, что разобрался с вашей помощью.
Ибо про опцию --extended-insert знал, но про --skip-extended-insert в хелпе ни слова.
До мана, чтобы его полностью прочитать, так и не добрался.
На сервере mysql был собран из сорсов без манов.
Благодарю.Получилось:
mysqldump -u${DB_USERNAME} \
-p${DB_USERPASS} \
-h${DB_HOST} \
--complete-insert \
--skip-extended-insert \
--databases ${DB_NAME} > ${STORE_DIR}/${FILE_NAME}