Mysqldump игнорировать ошибки

When dumping a database, I’m getting

mysqldump: Couldn't execute 'show create table `some_table`': execute command denied to user 'some_user'@'%' for routine 'some_routime' (1370)

and then the dumping just stops.

How do I make mysqldump continue when it runs into these sorts of problems? 10 minutes of Google has offered no help.

Here is the command I used:

mysqldump -u username -h localhost --port=4406 -p --databases database_name --skip-lock-tables --force > database_name.sql

Суть в том что при импорте из дампа .sql возникает ошибка в синтаксисе внутри файла и заливка в базу останавливается. Так вот, как сделать так чтобы при заливке дампа в базу ошибки просто игнорировались и проблемные места пропускались, а импорт шел дальше?


  • Вопрос задан

    более двух лет назад

  • 1710 просмотров

Используйте флаг —force, -f

—force, -f

Ignore all errors; continue even if an SQL error occurs during a table dump.

One use for this option is to cause mysqldump to continue executing even when it encounters a view that has become invalid because the definition refers to a table that has been dropped. Without —force, mysqldump exits with an error message. With —force, mysqldump prints the error message, but it also writes an SQL comment containing the view definition to the dump output and continues executing.

If the —ignore-error option is also given to ignore specific errors, —force takes precedence.

https://dev.mysql.com/doc/refman/8.0/en/mysqldump….

Пригласить эксперта


  • Показать ещё
    Загружается…

04 июн. 2023, в 01:35

1500 руб./за проект

04 июн. 2023, в 01:25

40000 руб./за проект

03 июн. 2023, в 23:42

1500 руб./за проект

Минуточку внимания

I’m helping a friend to backup his database, but I can’t get it right doing standard mysqldump process, when I try to use mysqlcheck, I sort the result: http://pastie.org/9748430

‘___’) It’s seriously scary..

Ok, now the question, how to make mysqldump ignore the error and continue backup till it’s complete?

last error:

mysqldump: Couldn't execute 'show create table `xxx`': Table '.mydb1xxx' is marked as crashed and should be repaired (145)

asked Nov 28, 2014 at 12:45

Kokizzu's user avatar

KokizzuKokizzu

1,3136 gold badges17 silver badges32 bronze badges

Found it, using this flag:

--skip-lock-tables -f

The schema still can’t be exported correctly, except by using phpmyadmin

answered Nov 28, 2014 at 13:06

Kokizzu's user avatar

KokizzuKokizzu

1,3136 gold badges17 silver badges32 bronze badges

2

7 июня 2009 г.

MyISAM

MySQL

InnoDB

Бэкап

mysql-dump

Утилита mysqldump позволяет получить дамп содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер (не обязательно MySQL-сервер). Дамп будет содержать набор команд SQL для создания и/или заполнения таблиц.

Так же mysqldump имеет возможность развертывания баз данных из созданного sql-файла.

Создание дампа

Разберем пример простейшее использования, задампим базу данных «database» при помощи перенаправления потока в файл «database.sql»:

mysqldump -uroot -h82.82.82.82 -p database > database.sql

где:

  • -u или -–user=… — имя пользователя
  • -h или —host=… — удаленный хост (для локального хоста можно опустить этот параметр)
  • -p или —password — запросить пароль
  • database — имя базы данных
  • database.sql — файл для дампа

Для того чтобы сделать дамп несколько баз данных, необходимо использовать параметр —databases (или сокращенно -B), пример:

mysqldump -uroot -h82.82.82.82 -p -B database1 database2 database3 > databases.sql

А для того чтобы сделать дамп всех баз данных, необходимо использовать параметр —all-databases (или сокращенно -A), пример:

mysqldump -uroot -h82.82.82.82 -p -A > all-databases.sql

Развертывание дампа

Перенаправляем поток в обратную сторону и развертываем базу данных:

mysql -uroot -h82.82.82.82 -p database < database.sql

Или через mysql-console:

mysql> use database;
mysql> source database.sql

Ну, а если у нас gz-архив к примеру, то:

zcat database.sql.gz | mysql -uroot -h82.82.82.82 -p database

Пример использование некоторых параметров

Например, нам нужны данные с «продакшен версии базы» для «версии разработчика», то есть нам нужна «песочница». Выбираем не более 100 записей:

mysqldump -uroot -h82.82.82.82 -p --where="true limit 100" database > database.sql

Или нам нужна только структура, без данных:

mysqldump -uroot -h82.82.82.82 -p --no-data database > database.sql

Примеры навеяны постом Александра Макарова — http://rmcreative.ru/blog/post/ljogkiy-damp-mysql

Делаем дамп только триггеров, процедур и событий:

mysqldump --no-create-info --no-data --triggers --routines --events -uroot -p database | gzip > ~/database.sql.gz

Шпаргалка по параметрам

Приведу некоторые параметры, которые могут понадобится при работе с утилитой mysqldump.

—add-drop-database

Добавляет оператор DROP DATABASE перед каждым оператором CREATE DATABASE.
—add-drop-table

Добавляет оператор DROP TABLE перед каждым оператором CREATE TABLE.
—add-locks

Добавляет оператор LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы (для ускорения доступа к MySQL).
—all-databases, -A

Сохраняет все таблицы из всех баз данных, которые находятся под управлением текущего сервера.
—allow-keywords

Разрешить создавать имена столбцов, которые совпадают с ключевыми словами. Отсутствие конфликтов обеспечивается прибавлением имени таблицы в качестве префикса к имени каждого столбца.
—comments, -i

Данный параметр позволяет добавить в дамп дополнительную информацию, такую, как версия mysqldump, версия MySQL, имя хоста, на котором расположен сервер MySQL.
—compact

Данный параметр требует от mysqldump создать дамп, используя как можно более компактный формат. Параметр является противоположным —comments.
—compatible=name

Параметр генерирует вывод, который совместим с другими СУБД или более старыми версиями MySQL. Вместо ключевого слова name можно использовать: «ansi», «mysql323», «mysql40», «postgresql», «oracle», «mssql», «db2», «maxdb», «no_key_options», «no_table_options», «no_field_options». Можно использовать несколько значений, разделив их запятыми.
—complete-insert, -c

Используется полная форма оператора INSERT (с именами столбцов).
—create-options

Добавляет дополнительную информацию в операторы CREATE TABLE. Это может быть тип таблицы, начальное значение AUTO_INCREMENT и другие параметры.
—databases, -B

Параметр позволяет указать имена нескольких баз данных, для которых необходимо создать дамп.
—delayed

Использовать команду INSERT DELAYED при вставке строк.
—delete-master-logs

На главном сервере репликации автоматически удаляются бинарные логи (logbin) после того, как дамп был успешно создан при помощи mysqldump. Этот параметр автоматически включает параметр «—master-data».
—disable-keys, -K

Для каждой таблицы, окружает оператор INSERT выражениями /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; и /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; в выводе результата дампа. Это ускорит загрузку данных на сервер для таблиц типа MyISAM, так как индексы создаются после внесения всех данных.
—extended-insert, -e

Использовать команду INSERT с новым многострочным синтаксисом (повышает компактность и быстродействие операторов ввода).
—flush-logs, -F

Записать на диск данные системного журнала из буфера MySQL-сервера перед началом выполнения дампа.
—force, -f

Продолжать даже если в процессе создания дампа произошла ошибка.
—hex-blob

Параметр позволяет представить бинарные данные в полях типа BINARY, VARBINARY, BLOB и BIT в шестнадцатеричном формате. Так последовательность «abc» будет заменена на 0x616263.
—ignore-table=db_name.tbl_name

Позволяет игнорировать таблицу tbl_name базы данных db_name при создании дампа. Если из дампа необходимо исключить несколько таблиц, необходимо использовать несколько параметров «—ignore-table», указывая по одной таблице в каждом из параметров.
—insert-ignore

Добавляет ключевое слово IGNORE в оператор INSERT.
—lock-all-tables, -x

Указание этого параметра приводит к блокировке всех таблиц во всех базах данных на время создания полного дампа всех баз данных.
—lock-tables, -l

Указание этого параметра приводит к блокировке таблиц базы данных, для которой создается дамп.
—no-autocommit

Включает все операторы INSERT, относящиеся к одной таблице, в одну транзакцию, что приводит к увеличению скорости загрузки данных.
—no-create-db, -n

Подавляет создание в дампе операторов CREATE DATABASE, которые автоматически добавляются при использовании параметров —databases и —all-databases.
—no-data, -d

Подавляет создание операторов INSERT в дампе, что может быть полезно при создании дампа структуры базы данных без самих данных.
—opt

Параметр предназначен для оптимизации скорости резервирования данных и является сокращением, включающим следующие опции: —quick —add-drop-table —add-locks —create-options —disable-keys —extended-insert —lock-tables —set-charset. Начиная с MySQL 4.1, параметр —opt используется по умолчанию, т.е. все вышеперечисленные параметры включаются по умолчанию, даже если они не указываются. Для того чтобы исключить такое поведение, необходимо воспользоваться параметров —skip-opt
—order-by-primary

Указание параметра приводит к тому. что каждая таблица сортируется по первичному ключу или первому уникальному индексу.
—port, -P

Номер TCP порта, используемого для подключения к хосту.
—protocol={TCP|SOCKET|PIPE|MEMORY}

Параметр позволяет задать протокол подключения к серверу.
—quick, -q

Позволяет начать формирование дампа, не дожидаясь полной загрузки данных с сервера и экономя тем самым память.
—quote-names, -Q

Помещает имена баз данных, таблиц и столбцов в обратные апострофы `. Начиная с MySQL 4.1, данный параметр включен по умолчанию.
—replace

Добавляет ключевое слово REPLACE в оператор INSERT. Данный параметр впервые появился в MySQL 5.1.3.
—result-file=/path/to/file, -r /path/to/file

Параметр направляет дамп в файл file. Этот параметр особенно удобен в Windows, без использования командной строки. когда можно перенаправить результат в файл при помощи последовательностей > и >>.
—routines, -R

Данный параметр создает дамп хранимых процедур и функций. Доступен с MySQL 5.1.2.
—single-transaction

Параметр создает дамп в виде одной транзакции.
—skip-comments

Данный параметр позволяет подавить вывод в дамп дополнительной информации.
—socket=/path/to/socket, -S /path/to/socket

Файл сокета для подсоединения к localhost.
—tab=/path/, -T /path/

При использовании этого параметра в каталоге path для каждой таблицы создаются два отдельных файла: tbl_name.sql, содержащий оператор CREATE TABLE, и tbl_name.txt, который содержит данные таблиц, разделенные символом табуляции. Формат данных может быть переопределен явно с помощью параметров —fields-xxx и —lines-xxx.
—tables

Перекрывает действия параметра —databases (-B). Все аргументы, следующие за этим параметром, трактуются как имена таблиц.
—triggers

Создается дамп триггеров. Этот параметр включен по умолчанию. для его отключения следует использовать параметр —skip-triggers.
—events, -E

Создается дамп событий. Смотрите MySQL Event Scheduler или встроенный диспетчер событий в MySQL.
—tz-utc

при использовании данного параметра в дамп будет добавлен оператор вида SET TIME_ZONE=’+00:00′, который позволит обмениваться дампа в различных временных зонах.
—verbose, -v

Расширенный режим вывода. Вывод более детальной информации о работе программы.
—version, -V

Вывести информацию о версии программы.
—where=’where-condition’, -w ‘where-condition’

Выполнить дамп только выбранных записей. Обратите внимание, что кавычки обязательны.
—xml, -X

Представляет дамп базы данных в виде XML.
—first-slave, -x

Блокирует все таблицы во всех базах данных.
—debug=…, -#

Отслеживать прохождение программы (для отладки).
—help

Вывести справочную информацию и выйти из программы.

Еще пару слов о бекапе в MySQL

mysqlhotcopy для MyISAM

Для быстрого резервирования БД с типом таблиц ISAM и MyISAM можно использовать «mysqlhotcopy», которая скопирует файлы *.frm, *.MYD и *.MYI:

# mysqlhotcopy db_name /path/to/dir

Для InnoDB не подойдет данный способ, потому что при этом типе не обязательно все файлы будут храниться в директории базы данных.

xtrabackup для InnoDB

Для InnoDB есть xtrabackup, рекомендую посмотреть!
UPD: XtraBackup — резервное копирование для innoDB

Бин-лог и репликации

Для репликации «mysqldump» не предназначена, для этого есть бин-лог (—log-bin):

# mysqlbinlog binlog.[0-9]* | mysql

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

Резервирование данныс в MySQL 6.x

С версии MySQL 6.x доступен online-backup, вот слайд объясняющий нововведения:

online_backup

–all-databases , -A

Экспортируйте все базы данных.

mysqldump  -uroot -p --all-databases

–all-tablespaces , -Y

Экспортируйте все табличные пространства.

mysqldump  -uroot -p --all-databases --all-tablespaces

–no-tablespaces , -y

Не экспортирует информацию о табличном пространстве.

mysqldump  -uroot -p --all-databases --no-tablespaces

–add-drop-database

Добавьте оператор отбрасывания базы данных перед созданием каждой базы данных.

mysqldump  -uroot -p --all-databases --add-drop-database

–add-drop-table

Добавьте оператор удаления таблицы данных перед созданием каждой таблицы данных. (По умолчанию включено, используйте –skip-add-drop-table для отмены опции)

mysqldump -uroot -p --all-database (оператор по умолчанию добавляется)

 mysqldump -uroot -p --all-database --skip-add-drop-table (отменить оператор удаления)

–add-locks

Добавляйте LOCK TABLES перед каждым экспортом таблицы и UNLOCK TABLE впоследствии. (По умолчанию включено, используйте –skip-add-locks для отмены опции)

mysqldump -uroot -p --all-database (оператор LOCK добавлен по умолчанию)

 mysqldump -uroot -p --all-database --skip-add-locks (отменить оператор LOCK)

–allow-keywords

Разрешить создание имен столбцов, которые являются ключевыми словами. Это делается путем добавления префикса имени таблицы к имени каждого столбца.

mysqldump  -uroot -p --all-databases --allow-keywords

–apply-slave-statements

Добавьте «STOP SLAVE» перед «CHANGE MASTER» и добавьте «START SLAVE» в конце экспорта.

mysqldump  -uroot -p --all-databases --apply-slave-statements

–character-sets-dir

Каталог файлов набора символов

mysqldump  -uroot -p --all-databases  --character-sets-dir=/usr/local/mysql/share/mysql/charsets

–comments

Дополнительная информация аннотации. По умолчанию открыто, вы можете использовать –skip-comments для отмены

mysqldump -uroot -p --all-database (комментарий для ведения журнала по умолчанию)

 mysqldump -uroot -p --all-database --skip-comments (раскомментировать)

–compatible

Экспортированные данные будут совместимы с другими базами данных или более старыми версиями MySQL. Значения могут быть ansi, mysql323, mysql40, postgresql, oracle, mssql, db2, maxdb, no_key_options, no_tables_options, no_field_options и т. Д.

Чтобы использовать несколько значений, разделяйте их запятыми. Это не гарантирует полную совместимость, но максимально возможную совместимость.

mysqldump  -uroot -p --all-databases --compatible=ansi

–compact

Экспорт меньше выходной информации (для отладки). Удалить комментарии и структуры головы и хвоста. Доступные опции: –skip-add-drop-table —skip-add-locks —skip-comments —skip-disable-keys

mysqldump  -uroot -p --all-databases --compact

–complete-insert, -c

Используйте полный оператор вставки (включая имена столбцов). Это может повысить эффективность вставки, но может зависеть от параметра max_allowed_packet и вызвать сбой вставки.

mysqldump  -uroot -p --all-databases --complete-insert

–compress, -C

Включить сжатие для передачи всей информации между клиентом и сервером

mysqldump  -uroot -p --all-databases --compress

–create-options, -a

Включите все параметры функции MySQL в оператор CREATE TABLE. (По умолчанию включено)

mysqldump  -uroot -p --all-databases

–databases, -B

Экспорт нескольких баз данных. Все параметры имени после параметра считаются именами базы данных.

mysqldump  -uroot -p --databases test mysql

–debug

Вывести отладочную информацию для отладки. Значение по умолчанию: d: t: o, / tmp / mysqldump.trace

mysqldump  -uroot -p --all-databases --debug

mysqldump  -uroot -p --all-databases --debug=” d:t:o,/tmp/debug.trace”

–debug-check

Проверьте память и откройте файл инструкции и выйдите.

mysqldump  -uroot -p --all-databases --debug-check

–debug-info

Вывести отладочную информацию и выйти

mysqldump  -uroot -p --all-databases --debug-info

–default-character-set

Установите набор символов по умолчанию, значение по умолчанию — utf8

mysqldump  -uroot -p --all-databases --default-character-set=latin1

–delayed-insert

Экспорт данных с использованием INSERT DELAYED

mysqldump  -uroot -p --all-databases --delayed-insert

–delete-master-logs

Удалить журнал после основного резервного копирования. Этот параметр автоматически активирует –master-data.

mysqldump  -uroot -p --all-databases --delete-master-logs

–disable-keys

Для каждой таблицы используйте / *! 40000 ALTER TABLE tbl_name DISABLE KEYS/; И /! 40000 ALTER TABLE tbl_name ENABLE KEYS * /; оператор ссылается на оператор INSERT. Это может импортировать выгруженный файл быстрее, потому что он создает индекс после вставки всех строк. Эта опция подходит только для таблиц MyISAM и открыта по умолчанию.

mysqldump  -uroot -p --all-databases 

–dump-slave

Эта опция приведет к тому, что основное местоположение бенлога и имя файла будут добавлены в экспортированный файл данных. При значении 1 он будет выводиться в файл данных с помощью команды CHANGE MASTER, а при значении 2 информация объяснения добавляется перед командой. Эта опция включает -lock-all-tables, если не указана опция -single -action. Эта опция автоматически отключает опцию –lock-tables. Значением по умолчанию является 0.

mysqldump  -uroot -p --all-databases --dump-slave=1

mysqldump  -uroot -p --all-databases --dump-slave=2

–events, -E

Экспорт событий.

mysqldump  -uroot -p --all-databases --events

–extended-insert, -e

Используйте синтаксис INSERT с несколькими столбцами VALUES. Это делает файл экспорта меньше и ускоряет импорт. По умолчанию включено, используйте –skip-extended-insert для отмены опции.

mysqldump  -uroot -p --all-databases

mysqldump -uroot -p --all-database - skip-extended-insert (опция отмены)

–fields-terminated-by

Данное поле игнорируется в файле экспорта. Используется с опцией –tab и не может использоваться с опциями –databases и –all-database

mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-terminated-by=”#”

–fields-enclosed-by

Каждое поле в выходном файле заключено в заданные символы. Используется с опцией –tab и не может использоваться с опциями –databases и –all-database

mysqldump  -uroot -p test test --tab=”/home/mysql” --fields-enclosed-by=”#”

–fields-optionally-enclosed-by

Каждое поле в выходном файле выборочно заключено в заданные символы. Используется с опцией –tab и не может использоваться с опциями –databases и –all-database

mysqldump  -uroot -p test test --tab=”/home/mysql”  --fields-enclosed-by=”#” --fields-optionally-enclosed-by  =”#”

–fields-escaped-by

Каждое поле в выходном файле игнорирует данный символ. Используется с опцией –tab и не может использоваться с опциями –databases и –all-database

mysqldump  -uroot -p mysql user --tab=”/home/mysql” --fields-escaped-by=”#”

–flush-logs

Обновите журнал перед началом экспорта.

Обратите внимание: если вы экспортируете несколько баз данных одновременно (используя опцию –databases или –all-database), журналы будут обновляться базами данных по базам данных. В дополнение к использованию –lock-all-tables или –master-data. В этом случае журнал будет обновлен один раз, поэтому соответствующая таблица будет заблокирована одновременно. Поэтому, если вы планируете экспортировать и обновлять журналы одновременно, вы должны использовать –lock-all-tables или –master-data и –flush-logs.

mysqldump  -uroot -p --all-databases --flush-logs

–flush-privileges

После экспорта базы данных mysql введите оператор FLUSH PRIVILEGES. Для правильного восстановления эту опцию следует использовать при экспорте базы данных mysql и использовании данных базы данных mysql.

mysqldump  -uroot -p --all-databases --flush-privileges

–force

Игнорировать ошибки SQL во время процесса экспорта.

mysqldump  -uroot -p --all-databases --force

–help

Показать справочную информацию и выйти.

mysqldump  --help

–hex-blob

Экспорт двоичных строковых полей в шестнадцатеричном формате. Если у вас есть двоичные данные, вы должны использовать эту опцию. Затрагиваемые типы полей: BINARY, VARBINARY и BLOB.

mysqldump  -uroot -p --all-databases --hex-blob

–host, -h

Информация о хосте для экспорта

mysqldump  -uroot -p --host=localhost --all-databases

–ignore-table

Указанная таблица не экспортируется. Когда вы указываете игнорировать несколько таблиц, вам нужно повторять несколько раз, по одной таблице за раз. В каждой таблице должны быть указаны база данных и имя таблицы. Например: –ignore-table = database.table1 —ignore-table = database.table2 …

mysqldump  -uroot -p --host=localhost --all-databases --ignore-table=mysql.user

–include-master-host-port

Добавьте ‘MASTER_HOST =, MASTER_PORT =’ к оператору ‘CHANGE MASTER TO…’, сгенерированному –dump-slave

mysqldump  -uroot -p --host=localhost --all-databases --include-master-host-port

–insert-ignore

Используйте оператор INSERT IGNORE при вставке строк.

mysqldump  -uroot -p --host=localhost --all-databases --insert-ignore

–lines-terminated-by

Каждая строка выходного файла делится на заданную строку символов. Используется с параметром –tab и не может использоваться с параметрами –databases и –all-database.

mysqldump  -uroot -p --host=localhost test test --tab=”/tmp/mysql”  --lines-terminated-by=”##”

–lock-all-tables, -x

Отправьте запрос на блокировку всех таблиц во всех базах данных для обеспечения согласованности данных. Это глобальная блокировка чтения, которая автоматически отключает опции -single -action и -lock-tables.

mysqldump  -uroot -p --host=localhost --all-databases --lock-all-tables

–lock-tables, -l

Перед началом экспорта заблокируйте все таблицы. Заблокируйте таблицу с помощью READ LOCAL, чтобы таблицы MyISAM можно было вставлять параллельно. Для таблиц, которые поддерживают транзакции, такие как InnoDB и BDB, лучше выбрать –single-транзакция, поскольку она вообще не требует блокировки таблиц.

Обратите внимание, что при экспорте нескольких баз данных –lock-tables блокирует таблицы для каждой базы данных отдельно. Следовательно, этот параметр не может гарантировать логическую согласованность таблиц в экспортируемом файле между базами данных. Состояние экспорта разных таблиц базы данных может быть совершенно разным.

mysqldump  -uroot -p --host=localhost --all-databases --lock-tables

–log-error

Добавить предупреждения и сообщения об ошибках в данный файл

mysqldump  -uroot -p --host=localhost --all-databases  --log-error=/tmp/mysqldump_error_log.err

–master-data

Эта опция добавляет местоположение и имя файла binlog к выходному файлу. Если оно равно 1, будет выведена команда CHANGE MASTER, если оно равно 2, информация комментария будет добавлена ​​перед выходной командой CHANGE MASTER. Эта опция включит опцию –lock-all-tables, если только не указана опция –single-транзакция (в этом случае глобальная блокировка чтения получается на короткое время, когда начинается экспорт; для другого содержимого, смотрите опцию –single-транзакция ниже ). Эта опция автоматически отключает опцию –lock-tables.

mysqldump  -uroot -p --host=localhost --all-databases --master-data=1;

mysqldump  -uroot -p --host=localhost --all-databases --master-data=2;

–max_allowed_packet

Максимальная длина пакета, отправляемого и получаемого сервером.

mysqldump  -uroot -p --host=localhost --all-databases --max_allowed_packet=10240

–net_buffer_length

Размер буфера TCP / IP и сокетов.

mysqldump  -uroot -p --host=localhost --all-databases --net_buffer_length=1024

–no-autocommit

Используйте операторы autocommit / commit для переноса таблицы.

mysqldump  -uroot -p --host=localhost --all-databases --no-autocommit

–no-create-db, -n

Экспортируйте только данные без добавления операторов CREATE DATABASE.

 mysqldump  -uroot -p --host=localhost --all-databases --no-create-db

–no-create-info, -t

Экспортируйте только данные без добавления оператора CREATE TABLE.

mysqldump  -uroot -p --host=localhost --all-databases --no-create-info

–no-data, -d

Данные не экспортируются, экспортируется только структура таблицы базы данных.

mysqldump  -uroot -p --host=localhost --all-databases --no-data

–no-set-names, -N

Эквивалент —skip-set-charset

mysqldump  -uroot -p --host=localhost --all-databases --no-set-names

–opt

Эквивалент —add-drop-table, —add-locks, —create-options, —quick, —extended-insert, —lock-tables, —set-charset, —disable-keys этот параметр Он включен по умолчанию и может быть отключен с помощью —skip-opt.

mysqldump  -uroot -p --host=localhost --all-databases --opt

–order-by-primary

Если есть первичный ключ или первый уникальный ключ, отсортируйте записи каждой таблицы. Он эффективен при экспорте таблиц MyISAM в таблицы InnoDB, но заставит экспорт работать долго.

mysqldump  -uroot -p --host=localhost --all-databases --order-by-primary

–password, -p

Пароль для подключения к базе данных

— Труба (доступно для системы Windows)

Соедините MySQL с именованными каналами

mysqldump  -uroot -p --host=localhost --all-databases --pipe

–port, -P

Соединитесь с номером порта базы данных

–protocol

Используемые протоколы соединения включают в себя: TCP, сокет, канал, память.

mysqldump  -uroot -p --host=localhost --all-databases --protocol=tcp

–quick, -q

Без буферизации запроса экспортируйте напрямую в стандартный вывод. По умолчанию включено, используйте –skip-quick, чтобы отменить эту опцию.

mysqldump  -uroot -p --host=localhost --all-databases 

mysqldump  -uroot -p --host=localhost --all-databases --skip-quick

–quote-names,-Q

Используйте (`), чтобы вызвать имена таблиц и столбцов. По умолчанию включено, используйте –skip-quote-names, чтобы отменить эту опцию.

mysqldump  -uroot -p --host=localhost --all-databases

mysqldump  -uroot -p --host=localhost --all-databases --skip-quote-names

–replace

Используйте REPLACE INTO вместо INSERT INTO.

mysqldump  -uroot -p --host=localhost --all-databases --replace

–result-file, -r

Прямой вывод в указанный файл. Эту опцию следует использовать в системах, в которых для переноса строки используются пары возврата каретки и перевода строки ( r n) (например, DOS, Windows). Эта опция гарантирует, что используется только одна строка.

mysqldump  -uroot -p --host=localhost --all-databases --result-file=/tmp/mysqldump_result_file.txt

–routines, -R

Экспорт хранимых процедур и пользовательских функций.

mysqldump  -uroot -p --host=localhost --all-databases --routines

–set-charset

Добавьте «SET NAMES default_character_set» в выходной файл. По умолчанию включено, используйте –skip-set-charset, чтобы отключить эту опцию.

mysqldump  -uroot -p --host=localhost --all-databases 

mysqldump  -uroot -p --host=localhost --all-databases --skip-set-charset

–single-transaction

Эта опция отправляет оператор SQL BEGIN перед экспортом данных, поскольку BEGIN не блокирует приложения и может гарантировать согласованное состояние базы данных во время экспорта. Это относится только к мультиверсионным механизмам хранения, только InnoDB. Эта опция и опция –lock-tables являются взаимоисключающими, поскольку LOCK TABLES неявно фиксирует любые ожидающие транзакции. Для экспорта больших таблиц опция –quick должна использоваться вместе.

mysqldump  -uroot -p --host=localhost --all-databases --single-transaction

–dump-date

Добавьте время экспорта в выходной файл. По умолчанию включено, используйте –skip-dump-date, чтобы отключить эту опцию.

mysqldump  -uroot -p --host=localhost --all-databases

mysqldump  -uroot -p --host=localhost --all-databases --skip-dump-date

–skip-opt

Отключите параметр —opt.

mysqldump  -uroot -p --host=localhost --all-databases --skip-opt

–socket,-S

Укажите местоположение файла сокета для подключения к mysql, путь по умолчанию /tmp/mysql.sock

mysqldump  -uroot -p --host=localhost --all-databases --socket=/tmp/mysqld.sock

–tab,-T

Создайте разделенные табуляцией текстовые файлы по указанному пути для каждой таблицы. Примечание. Используется только для серверов mysqldump и mysqld, работающих на одном компьютере.

mysqldump  -uroot -p --host=localhost test test --tab="/home/mysql"

–tables

Override –database (-B) параметр, укажите имя экспортируемой таблицы.

mysqldump  -uroot -p --host=localhost --databases test --tables test

–triggers

Экспортные триггеры. Эта опция включена по умолчанию, отключите ее с помощью -skip-triggers.

mysqldump  -uroot -p --host=localhost --all-databases --triggers

–tz-utc

Установите часовой пояс TIME_ZONE = ’+ 00:00’ в верхней части экспорта, чтобы обеспечить точность данных TIMESTAMP, экспортируемых в разные часовые пояса или при перемещении данных в другие часовые пояса.

mysqldump  -uroot -p --host=localhost --all-databases --tz-utc

–user, -u

Укажите имя пользователя для подключения.

–verbose, —v

Вывод информации о нескольких платформах.

–version, -V

Вывести информацию о версии mysqldump и выйти

–where, -w

Дамп только записи, выбранные с помощью данного условия WHERE. Обратите внимание, что если условие содержит пробелы или символы, выделенные для интерпретатора команд, обязательно укажите условие.

mysqldump  -uroot -p --host=localhost --all-databases --where=” user=’root’”

–xml, -X

Экспорт в формате XML.

mysqldump  -uroot -p --host=localhost --all-databases --xml

–plugin_dir

Каталог клиентских плагинов, используемый для совместимости с различными версиями плагинов.

mysqldump  -uroot -p --host=localhost --all-databases --plugin_dir=”/usr/local/lib/plugin”

–default_auth

Плагин клиента использует разрешения по умолчанию.

mysqldump  -uroot -p --host=localhost --all-databases --default-auth=”/usr/local/lib/plugin/<PLUGIN>”

MySQL перенос базы данных

MySQLdump

Для переноса базы данных при помощи дампа нужно выполнить всего 2 действия:

1. Создать дамп
Для создания дампа в файле <dump>, выполните команду:

# mysqldump -u<user> -p<password> <database> > <dump>.sql

2. Восстановить из дампа
Для начала, нужно создать базу данных с тем же именем:

#mysql -u<user> -p<password>
>CREATE DATABASE <database>

Затем, восстановить командой:

# mysql -u<user> -p<password> -f <database> < <dump>.sql

Ключ -f  означает — игнорировать ошибки.

Denwer и mysqldump

Сегодня столкнулся с проблемой при выполнении той же операции под Denwer’ом. И так, нужно:
1. Зайти в каталог с mysqldump. В командной строке введите:

Z: (Буква вашего виртуального диска)
cd usrlocalmysql-5.1bin (Версия mysql может отличаться)

2. Теперь убедитесь, что в папке есть mysqldump.exe. Введите команду:

dir

Если среди файлов нет mysqldump.exe -> найдите и скачайте.

3. Выполните mysqldump:

mysqldump -uroot <имя_базы> > <имя_файла>.sql (Если вы изменяли или добавляли пользователей, см. формат вызова выше, иначе все должно работать) 

Если видите такую ошибку:
«mysqldump: Character set ‘cp1251’ is not a compiled character set and is not specified in the ‘usrlocalmysql-5.1sharecharsetsIndex.xml’ file»
Убедитесь, что выполнили пункт первый из этого раздела. Т.к. mysqldump ищет настройки относительно корня раздела.

Популярные сообщения из этого блога

Siege Up! Editor (beta)

Изображение

Check out video with editor demonstration. New version of the game is currently in BETA TEST ! Download it here: https://abuksigun.itch.io/siegeup PLEASE, READ INSTRUCTIONS CAREFULLY! If you have any questions, ask here  https://discord.gg/zhszmspu New features: Available for PC Updated editor (Put walls, units, buildings, create campaign, make own game modes) Multiplayer (up to 8 players, play via Wi-Fi) Transport ships to move your soldiers across the ocean! New buildings and units  Build across the map, capture new lands and gather resources!

Git и Yandex.Disk

Изображение

Распределенность и гибкость Git’а позволили нам с братом реализовать очень интересный workflow. Я называю его «бомж-репозиторий». Смысл в том, что удаленный репозиторий хранится не на сервере, а в синхронизируемой папке Яндекс Диске. Достаточно что бы там лежала только папка «.git». Компьютеры разработчиков так же держат у себя локальные копии репозитория. 

STM32F4 и программный выход в DFU

Изображение

Столкнулся с необходимостью прошивки готового устройства на STM32F405. Мне хотелось бы прежде всего воспользоваться  встроенными средствами прошивки STM32 по USB. К сожалению, я не нашел чисто программного способа перевести контроллер в режим DFU. Здесь я приведу код перехода в DFU и инструкции для  выполнения необходимых модификаций платы. Я расскажу про переход в DFU для платы Discovery. После необходимых модификаций, появится возможность подключать и прошивать контроллер через MicroUSB, без использования отладчика SWD. И так, для начала, попробуем перевести контроллер в режим DFU вручную: BOOT0 закорачиваем с VDD, а BOOT1 закорачиваем с GND. Это можно сделать при помощи двух джамперов. На плате Discovery выглядит так (места для джамперов выделены красным): На ножки, выделенные красным ставим джамперы, перезагружаем плату и подключаем через microUSB к компьютеру. Теперь, остается найти софт для прошивки контроллера в режиме DFU. Читай дальше.

Понравилась статья? Поделить с друзьями:
  • Mysql проверка таблиц на ошибки
  • Mysql проверка запроса на ошибки
  • Mysql проверить таблицу на ошибки
  • Mysql ошибка репликации
  • Mysql ошибка при запуске приложения 0xc000007b