Spec-Zone .ru
спецификации, руководства, описания, API
|
Двоичный журнал сервера состоит из файлов, содержащих "события", которые описывают модификации к содержанию базы данных. Сервер пишет эти файлы в двоичном формате. Чтобы вывести на экран их содержание в текстовом формате, используйте mysqlbinlog утилиту. Можно также использовать mysqlbinlog, чтобы вывести на экран содержание релейных файлов журнала, записанных ведомым сервером в установке репликации, потому что у релейных журналов есть тот же самый формат как двоичные журналы. Двоичный журнал и релейный журнал обсуждаются далее в Разделе 5.2.4, "Двоичный Журнал", и Раздел 16.2.2, "Реле репликации и Журналы Состояния".
Вызовите mysqlbinlog как это:
shell> mysqlbinlog [options
]
log_file
...
Например, чтобы вывести на экран содержание двоичного названного файла журнала binlog.000003
,
используйте эту команду:
shell> mysqlbinlog
binlog.0000003
Вывод включает события, содержавшиеся в binlog.000003
. Для основанного на
операторе журналирования информация о событии включает SQL-оператор, ID сервера, на котором это выполнялось,
метка времени, когда оператор выполнялся, сколько времени потребовалось и т.д. Для основанного на строке
журналирования событие указывает на изменение строки, а не SQL-оператор. См. Раздел
16.1.2, "Форматы Репликации", для информации о журналировании режимов.
Событиям предшествуют комментарии заголовка, которые обеспечивают дополнительную информацию. Например:
# at 141#100309 9:28:36 server id 123 end_log_pos 245 Query thread_id=3350 exec_time=11 error_code=0
В первой строке, числе после at
указывает на стартовую позицию события в двоичном
файле журнала.
Вторая строка запускается с даты и время, указывая когда оператор, запущенный на сервере где порожденное
событие. Для репликации эта метка времени распространяется к ведомым серверам. server
id
server_id
значение сервера, где событие произошло. end_log_pos
указывает, где следующее событие запускается (то есть, это - позиция конца текущего события + 1). thread_id
указывает который поток, выполняемый событие. exec_time
потраченное выполнение времени события, на главном сервере. На ведомом устройстве это - различие времени
выполнения конца на ведомом устройстве минус начинающееся время выполнения на ведущем устройстве. Различие
служит индикатором того, сколько репликации отстает от ведущего устройства. error_code
указывает на следствие выполнения события. Нуль означает, что никакая
ошибка не произошла.
Вывод от mysqlbinlog может быть повторно выполнен (например, при использовании этого как входной к mysql), чтобы восстановить операторы в журнале. Это полезно для операций восстановления после катастрофического отказа сервера. Для других примеров использования см. обсуждение позже в этом разделе и в Разделе 7.5, "Момент времени (Инкрементное) Восстановление Используя Двоичный Журнал".
Обычно, Вы используете mysqlbinlog, чтобы считать двоичные файлы журнала
непосредственно и применить их к локальному серверу MySQL. Также возможно считать двоичные журналы из удаленного
сервера при использовании --read-from-remote-server
опция. Чтобы считать удаленные двоичные журналы,
опции параметра соединения могут быть даны, чтобы указать, как соединиться с сервером. Эти опции --host
, --password
, --port
, --protocol
, --socket
, и --user
; они игнорируются кроме тех случаев, когда Вы также используете --read-from-remote-server
опция.
mysqlbinlog поддерживает следующие опции, которые могут быть
определены на командной строке или в [mysqlbinlog]
и [client]
группы файла опции. mysqlbinlog также поддерживает опции для того, чтобы
обработать файлы опции, описанные в Разделе
4.2.3.4, "Параметры командной строки, которые Влияют на Обработку Файла опции".
Таблица 4.14. mysqlbinlog
Опции
Формат | Файл опции | Описание | Представленный |
---|---|---|---|
- base64-output=value | base64-вывод | Напечатайте двоичные записи журнала, используя кодировку Base 64 | |
- bind-address=ip_address | свяжите адресный | Используйте указанный сетевой интерфейс, чтобы соединиться с MySQL Server | |
--binlog-row-event-max-size=# | binlog-row-event-max-size | Двоичный журнал максимальный размер события | |
- character-sets-dir=path | dir наборов символов | Каталог, где наборы символов устанавливаются | |
- database=db_name | база данных | Записи списка для только этой базы данных | |
- отладка [=debug_options] | отладка | Запишите журнал отладки | |
- проверка отладки | проверка отладки | Напечатайте отладочную информацию, когда программа выходит | |
- информация отладки | информация отладки | Напечатайте отладочную информацию, память и статистику ЦП, когда программа выходит | |
- default-auth=plugin | default-auth=plugin | Плагин аутентификации, чтобы использовать | |
- "отключите мусорное ведро журнала" | "отключите мусорное ведро журнала" | Отключите двоичное журналирование | |
- exclude-gtids=gtid_set | исключить-gtids | Не показывайте ни одну из групп в обеспеченном наборе GTID | |
- "вызовите если открытый" | "вызовите если открытый" | Считайте двоичные файлы журнала даже если открытый или не закрытый должным образом | |
- считанный из силы | считанный из силы | Если mysqlbinlog читает двоичное событие журнала, которое он не распознает, он печатает предупреждение | |
- справка | Сообщение справки дисплея и выход | ||
- hexdump | hexdump | Выведите на экран шестнадцатеричный дамп журнала в комментариях | |
- host=host_name | узел | Соединитесь с сервером MySQL на данном узле | |
- идемпотент | идемпотент | Заставьте сервер использовать идемпотентный режим, обрабатывая двоичные обновления журнала от этого сеанса только | 5.7.0 |
- include-gtids=gtid_set | включать-gtids | Покажите только группы в обеспеченном наборе GTID | |
- local-load=path | локальная загрузка | Подготовьте локальные временные файлы к ДАННЫМ ЗАГРУЗКИ INFILE в указанном каталоге | |
- login-path=name | Считайте опции пути входа в систему из.mylogin.cnf | ||
--offset=# | смещение | Пропустите первые записи N в журнале | |
- пароль [=password] | пароль | Пароль, чтобы использовать, соединяясь с сервером | |
- plugin-dir=path | plugin-dir=path | Каталог, где плагины располагаются | |
- port=port_num | порт | Номер порта TCP/IP, чтобы использовать для соединения | |
- protocol=type | протокол | Протокол соединения, чтобы использовать | |
- сырые данные | сырые данные | Запишите события в необработанном (двоичном) формате к выходным файлам | |
- read-from-remote-master=type | "читайте от удаленного ведущего устройства" | Считайте двоичный журнал от ведущего устройства MySQL вместо того, чтобы читать локальный файл журнала | |
- чтение от удаленного сервера | чтение от удаленного сервера | Считайте двоичный журнал из сервера MySQL, а не локального файла журнала | |
- result-file=name | файл результата | Прямой вывод к данному файлу | |
- дб перезаписи ='oldname-> newname' | дб перезаписи | Создайте правила подстановки для баз данных, воспроизводя от журналов, записанных в основанном на строке формате. Может использоваться многократно. | 5.7.1 |
- server-id=id | идентификатор сервера | Извлеките только те события, создаваемые сервером, имеющим данный ID сервера | |
- set-charset=charset_name | набор символов набора | Добавьте, что НАБОР НАЗЫВАЕТ charset_name оператор к выводу | |
- краткая форма | краткая форма | Выведите на экран только операторы, содержавшиеся в журнале | |
- пропустите-gtids [=true|false] | пропустить-gtids | Не показывайте GTIDs; не рекомендуемый в производстве | |
- socket=path | сокет | Для соединений с localhost | |
- start-datetime=datetime | запустить-datetime | Считайте двоичный журнал из первого события с меткой времени, равной или позже чем datetime параметр | |
--start-position=# | запустите позиционный | Считайте двоичный журнал из первого события с позицией, равной или больше чем параметр | |
- stop-datetime=datetime | остановиться-datetime | Прекратите читать двоичный журнал в первом событии с меткой времени, равной или больше чем datetime параметр | |
- остановиться никогда | остановиться никогда | Останьтесь соединенными с сервером после чтения последнего двоичного файла журнала | |
--stop-never-slave-server-id=# | "не остановите никогда ведомый идентификатор сервера" | Ведомый ID сервера, чтобы сообщить, соединяясь с сервером | |
--stop-position=# | позиционный остановкой | Прекратите читать двоичный журнал в первом событии с позицией, равной или больше чем параметр | |
- "чтобы продлиться журнал" | "чтобы продлиться журнал" | Не останавливайтесь в конце требуемого двоичного журнала от сервера MySQL, а скорее продолжайте печатать к концу последнего двоичного журнала | |
- user=user_name, | пользователь | Имя пользователя MySQL, чтобы использовать, соединяясь с сервером | |
- многословный | Восстановите события строки как SQL-операторы | ||
- verify-binlog-checksum | Проверьте контрольные суммы в двоичном журнале | ||
- версия | Выведите на экран информацию о версии и выход |
--help
, -?
Выведите на экран сообщение справки и выход.
Эта опция определяет, когда события должны быть выведены на экран закодированные как основа 64
строковых использования BINLOG
операторы. У опции есть эти допустимые значения (не чувствительный к регистру):
AUTO
("автоматический") или UNSPEC
("неуказанные") дисплеи BINLOG
операторы автоматически когда необходимо (то есть, для
событий описания формата и событий строки). Если нет --base64-output
опция дается, эффект является тем же самым
как --base64-output=AUTO
.
Автоматический BINLOG
дисплей является единственным безопасным поведением, если Вы намереваетесь
использовать вывод mysqlbinlog, чтобы повторно
выполнить двоичное содержание файла журнала. Другие значения опции предназначаются
только для отладки или тестирования целей, потому что они могут произвести вывод,
который не включает все события в исполнимую форму.
NEVER
причины BINLOG
операторы, которые не будут выведены на экран. mysqlbinlog выходит с ошибкой, если
мероприятие строки учреждается, который должен быть выведен на экран, используя BINLOG
.
DECODE-ROWS
определяет к mysqlbinlog, что Вы намереваетесь для
событий строки декодироваться и выведенными на экран как прокомментированные SQL-операторы,
также определяя --verbose
опция. Как NEVER
,
DECODE-ROWS
подавляет дисплей BINLOG
операторы, но в отличие от этого NEVER
, это не выходит с ошибкой, если мероприятие строки
учреждается.
Для примеров, которые показывают эффект --base64-output
и --verbose
на выводе события строки см. Раздел
4.6.8.2, "mysqlbinlog Дисплей События Строки"
.
На компьютере, имеющем многократные сетевые интерфейсы, эта опция может использоваться, чтобы выбрать, какой интерфейс используется, соединяясь с сервером MySQL.
Формат командной строки | --binlog-row-event-max-size=# |
||
Формат файла опции | binlog-row-event-max-size |
||
Разрешенные Значения | |||
Диаметр долота платформы | 64 |
||
Ввести | numeric |
||
Значение по умолчанию | 4294967040 |
||
Диапазон | 256 .. 18446744073709547520 |
Определите максимальный размер основанного на строке двоичного события журнала в байтах. Строки группируются в события, меньшие чем этот размер если возможный. Значение должно быть кратным числом 256. Значение по умолчанию составляет 4 Гбайт.
Каталог, где наборы символов устанавливаются. См. Раздел 10.5, "Конфигурация Набора символов".
--database=
, db_name
-d
db_name
Эта опция заставляет mysqlbinlog выводить записи от двоичного журнала
(локальный журнал только), которые происходят в то время как db_name
выбрано как база данных значения по умолчанию
USE
.
--database
опция для mysqlbinlog подобна --binlog-do-db
опция для mysqld, но может использоваться, чтобы определить
только одну базу данных. Если --database
дается многократно, только последний экземпляр
используется.
Эффекты этой опции зависят от того, используется ли основанный на операторе или основанный на строке
формат журналирования, таким же образом что эффекты --binlog-do-db
зависьте от, или основанное на операторе или
основанное на строке журналирование используется.
Основанное на операторе журналирование. --database
опция работает следующим образом:
В то время как db_name
база
данных значения по умолчанию, операторы выводятся, изменяют ли они таблицы в db_name
или различная база данных.
Если db_name
выбирается как
база данных значения по умолчанию, операторы не выводятся, даже если они изменяют таблицы в
db_name
.
Есть исключение для CREATE DATABASE
, ALTER DATABASE
, и DROP DATABASE
. База данных,
создаваемая, измененная, или отброшенный, как полагают, является базой данных
значения по умолчанию, определяя, вывести ли оператор.
Предположите, что двоичный журнал создавался, выполняя эти операторы, используя на основе журналирование оператора:
INSERT INTO test.t1 (i) VALUES(100);INSERT INTO db2.t2 (j) VALUES(200);USE test;INSERT INTO test.t1 (i) VALUES(101);INSERT INTO t1 (i) VALUES(102);INSERT INTO db2.t2 (j) VALUES(201);USE db2;INSERT INTO test.t1 (i) VALUES(103);INSERT INTO db2.t2 (j) VALUES(202);INSERT INTO t2 (j) VALUES(203);
mysqlbinlog - database=test не выводит первые два INSERT
операторы, потому что нет никакой базы данных значения по умолчанию. Это выводит три INSERT
операторы после USE test
, но не три INSERT
операторы после USE db2
.
mysqlbinlog - database=db2 не выводит первые два INSERT
операторы, потому что нет никакой базы данных значения по умолчанию. Это не выводит три INSERT
операторы после USE test
, но действительно выводит три INSERT
операторы после USE db2
.
Основанное на строке журналирование. выводы mysqlbinlog только записи, которые изменяют таблицы,
принадлежащие db_name
. База данных значения по умолчанию
не имеет никакого эффекта на это. Предположите, что двоичный журнал, только описанный, создавался,
используя основанное на строке журналирование, а не основанное на операторе журналирование. mysqlbinlog - database=test выводы только те
записи, которые изменяют t1
в тестовой базе данных, независимо от ли USE
был выпущен или какова база данных значения по умолчанию.
Если сервер работает с binlog_format
набор к MIXED
и Вы хотите,
чтобы это было возможно использовать mysqlbinlog с --database
опция, следует гарантировать, что таблицы, которые
изменяются, находятся в базе данных, выбранной USE
.
(В частности никакие обновления перекрестной базы данных не должны использоваться.)
До MySQL 5.7.1, --database
опция не работала правильно с журналом,
записанным сервером MySQL GTID-enabled. (Ошибка #15912728)
--debug[=
,
debug_options
]-# [
debug_options
]
Запишите журнал отладки. Типичное debug_options
строка
'd:t:o,
. Значение
по умолчанию file_name
''d:t:o,/tmp/mysqlbinlog.trace'
.
Напечатайте некоторую отладочную информацию, когда программа выходит.
Напечатайте отладочную информацию и память и статистику использования ЦП, когда программа выходит.
Клиентский плагин аутентификации, чтобы использовать. См. Раздел 6.3.7, "Сменная Аутентификация".
Отключите двоичное журналирование. Это полезно для ухода от бесконечного цикла, если Вы используете
--to-last-log
опция и отправляет вывод тому же самому серверу MySQL. Эта опция также полезна, восстанавливая после
катастрофического отказа, чтобы избежать дублирования операторов, которые Вы зарегистрировали.
Эта опция требует, чтобы Вы имели SUPER
полномочие. Это заставляет mysqlbinlog включать a SET
sql_log_bin = 0
оператор в его выводе, чтобы отключить двоичное журналирование остающегося
вывода. SET
оператор неэффективен, если Вы не имеете SUPER
полномочие.
Не выводите на экран ни одну из групп, перечисленных в gtid_set
.
--force-if-open
, -F
Считайте двоичные файлы журнала, даже если они открыты или не были закрыты должным образом.
--force-read
, -f
С этой опцией, если mysqlbinlog читает двоичное событие журнала, которое это не распознает, это печатает предупреждение, игнорирует событие, и продолжается. Без этой опции останавливается mysqlbinlog, если это читает такое событие.
--hexdump
, -H
Выведите на экран шестнадцатеричный дамп журнала в комментариях, как описано в Разделе 4.6.8.1, "mysqlbinlog Шестнадцатеричный Формат Дампа". Шестнадцатеричный вывод может быть полезным для отладки репликации.
--host=
, host_name
-h
host_name
Получите двоичный журнал от сервера MySQL на данном узле.
Скажите MySQL Server использовать идемпотентный режим, обрабатывая обновления; это вызывает подавление любого двойного ключа или ключа, не найденного ошибками, с которыми сервер встречается в текущем сеансе, обрабатывая обновления. Эта опция может оказаться полезной всякий раз, когда это является требуемым или необходимым воспроизвести один или более двоичных журналов к MySQL Server, который, возможно, не содержит все данные, к которым обращаются журналы.
Контекст эффекта для этой опции включает ток mysqlbinlog клиент и сеанс только.
--idempotent
опция была представлена в MySQL 5.7.0.
Выведите на экран только группы, перечисленные в gtid_set
.
--local-load=
, path
-l
path
Подготовьте локальные временные файлы к LOAD DATA INFILE
в указанном каталоге.
Эти временные файлы автоматически не удаляются mysqlbinlog или никакой другой программой MySQL.
--offset=
, N
-o
N
Пропустите первое N
записи в журнале.
--password[=
, password
]-p[
password
]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете короткую форму опции (-p
), у Вас не может быть
пространства между опцией и паролем. Если Вы опускаете password
значение после --password
или -p
опция на командной
строке, mysqlbinlog запрашивает одного.
Определение пароля на командной строке нужно считать небезопасным. См. Раздел 6.1.2.1, "Направляющие линии Конечного пользователя для Безопасности Пароля". Можно использовать файл опции, чтобы избежать давать пароль на командной строке.
Каталог, в котором можно искать плагины. Может быть необходимо определить эту опцию если --default-auth
опция используется, чтобы определить плагин аутентификации, но mysqlbinlog не находит это. См. Раздел
6.3.7, "Сменная Аутентификация".
--port=
, port_num
-P
port_num
Номер порта TCP/IP, чтобы использовать для того, чтобы соединиться с удаленным сервером.
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с сервером. Полезно, когда другие параметры соединения обычно заставляли бы протокол использоваться кроме того, Вы хотите. Для получения дополнительной информации на допустимых значениях, см. Раздел 4.2.2, "Соединяясь с MySQL Server".
По умолчанию mysqlbinlog читает двоичные файлы журнала и события
записей в текстовом формате. --raw
опция говорит mysqlbinlog писать им в их исходном двоичном
формате. Его использование требует этого --read-from-remote-server
также используйтесь, потому что файлы
требуют от сервера. mysqlbinlog пишет один выходной файл для каждого
файла, считанного из сервера. --raw
опция может использоваться, чтобы сделать резервное
копирование двоичного журнала сервера. С --stop-never
опция, резервное копирование "живо", потому что mysqlbinlog остается соединенным с сервером. По
умолчанию выходные файлы пишутся в текущем каталоге с теми же самыми именами как исходные файлы
журнала. Имена выходного файла могут быть изменены, используя --result-file
опция. Для получения дополнительной информации см.
Раздел 4.6.8.3, "Используя
mysqlbinlog, чтобы поддержать Двоичные Файлы
журнала".
--read-from-remote-master=
type
Считайте двоичные журналы из сервера MySQL с COM_BINLOG_DUMP
или COM_BINLOG_DUMP_GTID
команды, устанавливая опцию оценивают также BINLOG-DUMP-NON-GTIDS
или BINLOG-DUMP-GTIDS
,
соответственно. Если --read-from-remote-master=BINLOG-DUMP-GTIDS
объединяется с --exclude-gtids
,
транзакции могут быть отфильтрованы на ведущем устройстве, избегая ненужного сетевого трафика.
См. также описание для --read-from-remote-server
.
Считайте двоичный журнал из сервера MySQL вместо того, чтобы читать локальный файл журнала. Любые
опции параметра соединения игнорируются, если эта опция не дается также. Эти опции --host
, --password
, --port
, --protocol
, --socket
, и --user
.
Эта опция требует, чтобы удаленный сервер работал. Это работает только на двоичные файлы журнала на удаленном сервере, не релейные файлы журнала.
Эта опция походит --read-from-remote-master=BINLOG-DUMP-NON-GTIDS
.
--result-file=
, name
-r
name
Без --raw
опция, эта опция указывает на файл, в который mysqlbinlog пишет текстовый вывод. С --raw
, mysqlbinlog пишет один файл двоичного выхода для
каждого файла журнала, переданного от сервера, пишущий им по умолчанию в текущем каталоге, используя
те же самые имена в качестве исходного файла журнала. В этом случае, --result-file
значение опции обрабатывается как префикс, который
изменяет имена выходного файла.
--rewrite-db='
dboldname
->dbnewname
'
Читая из основанного на строке журнала, перепишите все возникновения dboldname
к dbnewname
. Для использования, восстанавливая таблицы
зарегистрировал использование основанного на строке формата к базе данных, имеющей другое имя от
исходной базы данных.
Правило подстановки, используемое как значение для этой опции, является строкой, имеющей форму '
, как показано ранее, и по этой причине
должен быть включен кавычками. Они могут быть единственными или двойными кавычками (dboldname
->dbnewname
''
или "
).
Чтобы использовать многократные правила подстановки, определите опцию многократно, как показано здесь:
shell> mysqlbinlog
--rewrite-db='dbcurrent->dbold' --rewrite-db='dbtest->dbcurrent' \ binlog.00001 >
/tmp/statements.sql
Эта опция была добавлена в MySQL 5.7.1.
Выведите на экран только те события, создаваемые сервером, имеющим данный ID сервера.
Добавьте a SET NAMES
оператор к выводу, чтобы определить
набор символов, который будет использоваться для того, чтобы обработать файлы журнала. charset_name
--short-form
, -s
Выведите на экран только операторы, содержавшиеся в журнале без любой дополнительной информации или основанных на строке событий. Это для того, чтобы протестировать только, и не должно использоваться в производственных системах.
Не выводите на экран GTIDs. Не рекомендуемый в производстве.
--socket=
, path
-S
path
Для соединений с localhost
, файл сокета Unix, чтобы использовать, или,
на Windows, имени именованного канала, чтобы использовать.
Начните читать двоичный журнал в первом событии, имеющем метку времени, равную или позже чем datetime
параметр. datetime
значение относительно зоны местного времени на
машине, куда Вы выполняете mysqlbinlog. Значение должно быть в формате,
принятом для DATETIME
или TIMESTAMP
типы данных. Например:
shell> mysqlbinlog --start-datetime="2005-12-25
11:25:56" binlog.000003
Эта опция полезна для восстановления момента времени. См. Раздел 7.3, "Стратегия резервного копирования и восстановления в качестве примера".
--start-position=
, N
-j
N
Начните читать двоичный журнал в первом событии, имеющем позицию, равную или больше чем N
. Эта опция применяется к первому файлу журнала,
названному на командной строке.
Эта опция полезна для восстановления момента времени. См. Раздел 7.3, "Стратегия резервного копирования и восстановления в качестве примера".
Прекратите читать двоичный журнал в первом событии, имеющем метку времени, равную или позже чем datetime
параметр. Эта опция полезна для восстановления
момента времени. См. описание --start-datetime
опция для информации о datetime
значение.
Эта опция полезна для восстановления момента времени. См. Раздел 7.3, "Стратегия резервного копирования и восстановления в качестве примера".
Эта опция используется с --read-from-remote-server
. Это говорит mysqlbinlog оставаться соединенным с сервером. Иначе
mysqlbinlog выходит, когда последний файл
журнала был передан от сервера. --stop-never
подразумевает --to-last-log
, так только первый файл журнала, который передаст
потребность быть названным на командной строке.
--stop-never
обычно используется с --raw
сделать живое двоичное резервное копирование журнала, но также и
может использоваться без --raw
чтобы поддержать непрерывный текстовый дисплей событий
журнала как, сервер генерирует их.
--stop-never-slave-server-id=
id
С --stop-never
,
mysqlbinlog сообщает о ID сервера 65535, когда
он соединяется с сервером. --stop-never-slave-server-id
явно определяет ID сервера, чтобы
сообщить. Это может использоваться, чтобы избежать конфликта с ID ведомого сервера или другого
процесса mysqlbinlog. См. Раздел
4.6.8.4, "Определение mysqlbinlog ID Сервера"
.
Прекратите читать двоичный журнал в первом событии, имеющем позицию, равную или больше чем N
. Эта опция применяется к последнему файлу журнала,
названному на командной строке.
Эта опция полезна для восстановления момента времени. См. Раздел 7.3, "Стратегия резервного копирования и восстановления в качестве примера".
--to-last-log
, -t
Не останавливайтесь в конце требуемого двоичного журнала от сервера MySQL, а скорее продолжайте
печатать до конца последнего двоичного журнала. Если Вы отправляете вывод тому же самому серверу
MySQL, это может привести к бесконечному циклу. Эта опция требует --read-from-remote-server
.
--user=
, user_name
-u
user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с удаленным сервером.
--verbose
, -v
Восстановите события строки и выведите на экран их как прокомментированные SQL-операторы. Если эта опция дается дважды, вывод включает комментарии, чтобы указать на типы данных столбца и некоторые метаданные.
Для примеров, которые показывают эффект --base64-output
и --verbose
на выводе события строки см. Раздел
4.6.8.2, "mysqlbinlog Дисплей События Строки"
.
Проверьте контрольные суммы в двоичных файлах журнала.
--version
, -V
Выведите на экран информацию о версии и выход.
В MySQL 5.7.1 и позже, mysqlbinlog номер версии, показанный при использовании этой опции, 3.4. (Ошибка #15894381, Ошибка #67643)
Можно также установить следующую переменную при использовании --
синтаксис:var_name
=value
Можно передать вывод по каналу mysqlbinlog в mysql клиент, чтобы выполнить события, содержавшиеся в двоичном журнале. Этот метод используется, чтобы восстановиться с катастрофического отказа, когда у Вас есть старое резервное копирование (см. Раздел 7.5, "Момент времени (Инкрементное) Восстановление Используя Двоичный Журнал"). Например:
shell> mysqlbinlog binlog.000001 | mysql -u root
-p
Или:
shell> mysqlbinlog binlog.[0-9]* | mysql -u root
-p
Если операторы, произведенные mysqlbinlog, могут содержать BLOB
значения, они могут вызвать проблемы, когда mysql обрабатывает их. В этом случае вызовите mysql с --binary-mode
опция.
Можно также перенаправить вывод mysqlbinlog к текстовому файлу вместо этого, если Вы должны изменить журнал оператора сначала (например, чтобы удалить операторы, которые Вы не хотите выполнять по некоторым причинам). После редактирования файла выполните операторы, которые это содержит при использовании этого как входной к mysql программе:
shell>mysqlbinlog binlog.000001 > tmpfile
shell> ...edit tmpfile
...shell>mysql -u root -p < tmpfile
Когда mysqlbinlog
вызывается с --start-position
опция, это выводит на экран только те события со смещением в двоичном журнале, больше чем, или равный данной
позиции (данная позиция должна соответствовать запуск одного события). У этого также есть опции, чтобы
остановиться и запуститься, когда это видит событие с данной датой и время. Это позволяет Вам выполнить
восстановление момента времени, используя --stop-datetime
опция (чтобы быть в состоянии сказать, например, "продвигают вперёд мои базы данных к тому, как они были сегодня в 10:30").
Если у Вас есть больше чем один двоичный журнал, чтобы выполниться на сервере MySQL, надежный метод должен обработать их всех использование единственного соединения с сервером. Вот пример, который демонстрирует то, что может быть опасным:
shell>mysqlbinlog binlog.000001 | mysql -u root -p # DANGER!!
shell>mysqlbinlog binlog.000002 | mysql -u root -p # DANGER!!
Обработка двоичного файла регистрирует этот способ использовать многократные соединения с проблемами причин
сервера, если первый файл журнала содержит a CREATE
TEMPORARY TABLE
оператор и второй журнал содержат оператор, который использует временную таблицу.
Когда первый процесс mysql завершается, сервер отбрасывает временную таблицу.
Когда второй процесс mysql пытается использовать таблицу, отчеты сервера "неизвестная таблица."
Чтобы избежать проблем как это, используйте единственный процесс mysql, чтобы выполнить содержание всех двоичных журналов, которые Вы хотите обработать. Вот один способ сделать так:
shell> mysqlbinlog binlog.000001 binlog.000002 |
mysql -u root -p
Другой подход должен записать все журналы в единственный файл и затем обработать файл:
shell>mysqlbinlog binlog.000001 > /tmp/statements.sql
shell>mysqlbinlog binlog.000002 >> /tmp/statements.sql
shell>mysql -u root -p -e "source /tmp/statements.sql"
mysqlbinlog может произвести вывод, который воспроизводит a LOAD
DATA INFILE
работа без исходного файла данных. mysqlbinlog копирует данные во временный файл и пишет a LOAD
DATA LOCAL INFILE
оператор, который обращается к файлу. Расположение значения по умолчанию каталога,
где эти файлы пишутся, специфично для системы. Чтобы определить каталог явно, используйте --local-load
опция.
Поскольку mysqlbinlog
преобразовывает LOAD DATA INFILE
операторы к LOAD DATA LOCAL INFILE
операторы (то есть, добавляет это LOCAL
), и клиент и сервер, который Вы используете, чтобы обработать операторы,
должны быть сконфигурированы с LOCAL
возможность включается. См. Раздел
6.1.6, "Вопросы безопасности с LOAD DATA LOCAL
".
Временные файлы, создаваемые для LOAD
DATA LOCAL
операторы автоматически не удаляются, потому
что они необходимы, пока Вы фактически не выполняете те операторы. Следует удалить временные файлы
самостоятельно после того, как Вы больше не нуждаетесь в журнале оператора. Файлы могут быть найдены во
временном каталоге файла и иметь имена как original_file_name-#-#
.