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
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
KokizzuKokizzu
1,3136 gold badges17 silver badges32 bronze badges
2
7 июня 2009 г.
MyISAM
MySQL
InnoDB
Бэкап
Утилита 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, вот слайд объясняющий нововведения:
–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. Читай дальше.