Глава 5. Программы MySQL
Эта глава обеспечивает краткий обзор программ командной строки MySQL,
обеспеченных Oracle Corporation. Это также обсуждает общий синтаксис для
того, чтобы определить опции, когда Вы выполняете эти программы.
У большинства программ есть опции, которые являются определенными для их
собственной работы, но синтаксис опции подобен для всех. Наконец, глава
обеспечивает более подробные описания отдельных программ, включая опции,
которые они признают.
5.1. Обзор программ MySQL
В установке MySQL есть много различных программ. Этот раздел обеспечивает
их краткий обзор. Более поздние разделы обеспечивают более подробное
описание. Описание каждой программы указывает на синтаксис
и опции, которые она поддерживает.
Большинство дистрибутивов MySQL включает все эти программы, за
исключением тех программ, которые являются определенными для платформы.
Например, скрипты запуска сервера не используются в Windows.
Исключение то, что дистрибутивы RPM более специализированы. Есть RPM для
сервера, другой для программ клиента и т.д. Если Вы, кажется, пропускаете
одну или более программ, см. главу 2, для
информации о типах дистрибутивов, и что они содержат. Может случиться так,
что у Вас есть дистрибутив, который не включает все программы, и Вы должны
установить дополнительный пакет.
Каждая программа MySQL берет много различных опций. Большинство программ
обеспечивает опцию --help , которую Вы можете использовать, чтобы
получить описание различных вариантов программы. Например, попробуйте
mysql --help.
Вы можете переопределить значения опции по умолчанию для программ MySQL,
определяя опции в командной строке или в файле опции. См.
раздел 5.2.
Сервер MySQL, mysqld
, является основной программой, которая делает большую часть
работы в установке MySQL. Сервер сопровождается несколькими связанными
скриптами, которые помогают Вам в запуске и остановке сервера:
mysqld
Демон SQL (то есть, сервер MySQL). Чтобы использовать программы клиента,
mysqld должен
работать, потому что клиенты получают доступ к базам данных, соединяясь с
сервером. См. раздел 5.3.1.
- mysqld_safe
Скрипт запуска сервера.
mysqld_safe пытается запустить
mysqld. См.
раздел 5.3.2.
- mysql.server
Другой скрипт запуска сервера. Этот скрипт используется на системах,
которые используют стиль System V для каталогов, содержащих скрипты, которые
запускают системные службы для особых уровней выполнения. Это вызывает
mysqld_safe
, чтобы запустить сервер MySQL. См.
раздел 5.3.3.
- mysqld_multi
Скрипт запуска сервера, который может запустить или остановить много
серверов, установленных в системе. См.
раздел 5.3.4.
Несколько программ выполняют операции установки во
время установки MySQL:
comp_err
Эта программа используется во время процессов сборки или установки MySQL.
Это собирает файлы сообщения об ошибке из исходных файлов. См.
раздел 5.4.1.
-
mysql_secure_installation
Эта программа позволяет Вам улучшить безопасность своей
установки MySQL. См. раздел
5.4.2.
-
mysql_ssl_rsa_setup
Эта программа создает сертификат SSL, ключевые файлы и файлы ключевой пары
RSA, требуемые, чтобы поддерживать безопасные соединения, если те файлы
отсутствуют. Файлы, создаваемые
mysql_ssl_rsa_setup,
могут использоваться для безопасных соединений, используя SSL или RSA. См.
раздел 5.4.3.
-
mysql_tzinfo_to_sql
Эта программа загружает таблицы часового пояса в базу данных
mysql , используя содержание базы данных
zoneinfo хост-системы (набор файлов, описывающих часовые пояса). См.
раздел 5.4.4.
- mysql_upgrade
Эта программа используется после работы обновления MySQL.
Это проверяет таблицы на несовместимости и восстанавливает их в случае
необходимости, и обновляет таблицы привилегий с любыми изменениями, которые
были произведены в более новых версиях MySQL. См.
раздел 5.4.5.
Программы клиента MySQL, которые соединяются с сервером MySQL:
mysql
Инструмент командной строки для того, чтобы в интерактивном режиме
ввести запросы SQL или выполнить их из файла в пакетном режиме. См.
раздел 5.5.1.
- mysqladmin
Клиент, который выполняет административные задачи, такие как создание или
удаление баз данных, перезагрузка таблиц, сброс таблиц на диск и повторное
открытие файлов системного журнала.
mysqladmin
может также использоваться, чтобы получить версию, процесс и информацию
о статусе от сервера. См. раздел 5.5.2.
- mysqlcheck
Клиент табличного обслуживания, который проверяет, восстанавливает,
анализирует и оптимизирует таблицы. См.
раздел 5.5.3.
- mysqldump
Клиент, который выводит базу данных MySQL в файл как SQL, текст или XML.
См. раздел 5.5.4.
- mysqlimport
Клиент, который импортирует текстовые файлы в их соответствующие таблицы
через LOAD DATA INFILE . См.
раздел 5.5.5.
- mysqlpump
Клиент, который выводит базу данных MySQL в файл как SQL. См.
раздел 5.5.6.
- mysqlshow
Клиент, который выводит на экран информацию о базах данных, таблицах,
столбцах и индексах. См. раздел 5.5.7.
- mysqlslap
Клиент, который разработан, чтобы подражать загрузке клиента для сервера
MySQL и сообщить о синхронизации каждого этапа. Это работает, как будто
многократные клиенты получают доступ к серверу. См.
раздел 5.5.8.
Утилиты управления MySQL:
innochecksum
Офлайновая утилита контрольной суммы файла InnoDB , см.
раздел 5.6.2.
- myisam_ftdump
Утилита, которая выводит на экран информацию о полнотекстовом индексе в
таблице MyISAM , см.
раздел 5.6.3.
- myisamchk
Утилита, чтобы описать, проверить, оптимизировать и отремонтировать
таблицы MyISAM , см. раздел
5.6.4.
- myisamlog
Утилита, которая обрабатывает содержание
файла системного журнала MyISAM . См.
раздел 5.6.5.
- myisampack
Утилита, которая сжимает таблицы MyISAM ,
чтобы произвести меньшие таблицы только для чтения. См.
раздел 5.6.6.
-
mysql_config_editor
Утилита, которая позволяет Вам сохранить параметры
аутентификации в безопасном, зашифрованном файле .mylogin.cnf .
См. раздел 5.6.7.
- mysqlbinlog
Утилита для того, чтобы считать запросы из двоичного журнала. Журнал
выполненных запросов, содержавшихся в двоичных файлах системного журнала,
может использоваться, чтобы помочь оправиться от катастрофического отказа.
См. раздел 5.6.8.
- mysqldumpslow
Утилита, чтобы читать и суммировать содержание медленного журнала запроса.
См. раздел 5.6.9.
Утилиты развития программы MySQL:
Разные дополнительные утилиты:
Oracle Corporation также обеспечивает
MySQL Workbench GUI, который используется, чтобы
управлять серверами MySQL и базами данных, создавать, выполнять и оценивать
запросы, мигрировать схемы и данные от других систем управления реляционной
базы данных для использования с MySQL. Дополнительные инструменты GUI
включают MySQL Notifier и
MySQL for Excel.
Программы клиента MySQL, которые общаются с сервером, используя
библиотеку клиент-сервер, применяют следующие переменные окружения.
Переменная | Смысл
|
MYSQL_UNIX_PORT |
Файл сокета Unix по умолчанию используемый для соединений с
localhost |
MYSQL_TCP_PORT | Номер
порта по умолчанию используемый для соединений TCP/IP |
MYSQL_PWD |
Пароль по умолчанию |
MYSQL_DEBUG |
Опции трассировки отладки |
TMPDIR |
Каталог, где создаются временные таблицы и файлы |
Для полного списка переменных окружения, используемых программами MySQL,
см. раздел 5.9.
Использование MYSQL_PWD опасно, см.
раздел 7.1.2.1.
5.2. Использование программ MySQL
5.2.1. Вызов программ MySQL
Чтобы вызвать программу MySQL из командной строки (то есть, из
Вашей оболочки или командной строки), вводят название программы,
сопровождаемое любыми опциями или другими параметрами, которые должны
проинструктировать программу, что Вы хотите. Следующие команды показывают
некоторые примеры вызова программы. shell>
представляет подсказку для Вашего интерпретатора команд, это не часть того,
что Вы вводите. Особая подсказка, которую Вы видите, зависит от Вашего
интерпретатора команд. Типичные подсказки $ для
sh, ksh или
bash, % для
csh или tcsh и
C:\> для Windows command.com
или cmd.exe.
shell> mysql --user=root test
shell> mysqladmin extended-status variables
shell> mysqlshow --help
shell> mysqldump -u root personnel
Параметры, которые начинаются с единственного или двойного тире
(- , -- ), задают опции программы. Опции, как
правило, указывают на тип соединения, которое программа должна сделать к
серверу, или определяют операционный режим. Синтаксис опций описан в
разделе 5.2.3.
Параметры не опции (параметры без ведущего тире) обеспечивают
дополнительную информацию программе. Например,
mysql
интерпретирует первый параметр не опции как имя базы данных, таким образом,
команда mysql --user=root test указывает, что Вы хотите
использовать базу данных test .
Более поздние разделы, которые описывают отдельные программы, указывают,
какие опции программа поддерживает и значение
любых дополнительных параметров.
Некоторые опции характерны для многих программ. Наиболее часто
используемые из них
--host (-h ),
--user
(-u ) и
--password (-p ) определяют параметры соединения. Они
указывают на хост, где сервер MySQL работает, имя пользователя и пароль Вашей
учетной записи MySQL. Все программы клиента MySQL понимают эти опции,
они позволяют Вам определить с которым сервером соединиться и учетную запись,
чтобы использовать на том сервере. Другие опции соединения
--port
(-P ) определяет номер порта TCP/IP и
--socket
(-S ) указывает файл сокета на Unix (или именованный канал в
Windows). См. раздел 5.2.2.
Вы можете счесть необходимым вызвать программы MySQL, используя путь для
каталога bin , в котором они установлены. Это, вероятно, будет
иметь место, если Вы получаете ошибку program not found
, когда Вы пытаетесь выполнить программу MySQL из любого каталога
кроме bin . Чтобы сделать более удобным использование MySQL, Вы
можете добавить путь bin в переменную PATH .
Это позволяет Вам выполнить программу, вводя только ее имя.
Например, если mysql
установлена в /usr/local/mysql/bin ,
Вы можете выполнить программу, вызывая это как
mysql
и не надо вызвать это как
/usr/local/mysql/bin/mysql.
Консультируйтесь с документацией для своего интерпретатора
команд для инструкций по установке PATH .
Синтаксис для того, чтобы установить переменные окружения является
определенным для интерпретатора. См.
раздел 5.2.10.
После изменения Вашего PATH , откройте новую консоль в Windows
или войдите в систему снова в Unix, чтобы установка вступила в силу.
5.2.2. Соединение с сервером MySQL
Этот раздел описывает, как установить соединение с сервером MySQL.
Для дополнительной информации, если Вы не способны соединиться, см.
раздел 7.2.8.
Для программы клиента, чтобы быть в состоянии соединиться с сервером, надо
использовать надлежащие параметры соединения, такие как имя хоста
и имя пользователя и пароль Вашей учетной записи MySQL. У каждого параметра
соединения есть значение по умолчанию, но Вы можете переопределить их по мере
необходимости через использование опций программы, определенных в командной
строке или в файле опций.
Примеры здесь используют
mysql, но принципы относятся к другим клиентам, таким как
mysqldump,
mysqladmin
или mysqlshow
.
Эта команда вызывает mysql
не определяя параметров соединения явно:
shell> mysql
Поскольку нет никаких опций параметра, значения по умолчанию применяются:
Чтобы определить имя хоста и пользователя явно, так же как пароль,
укажите соответствующие опции в командной строке:
shell> mysql --host=localhost --user=myname --password=mypass mydb
shell> mysql -h localhost -u myname -pmypass mydb
Для опций пароля значение является дополнительным:
Указание значение пароля в командной строке может быть угрозой
безопасности. Чтобы избежать этой проблемы, определите
--password или -p без любого значения пароля:
shell> mysql --host=localhost --user=myname --password mydb
shell> mysql -h localhost -u myname -p mydb
Когда у опции пароля нет никакого значения пароля, программа клиента
печатает подсказку и ждет ввода пароля. В этих примерах mydb
не интерпретируется как пароль, потому что это отделено
от предыдущей опции пароля пробелом.
На некоторых системах библиотека автоматически ограничивает пароль восемью
символами. Это проблема с системной библиотекой, не с MySQL. Внутренне у
MySQL нет никакого предела для длины пароля. Чтобы решить проблему,
измените свой пароль MySQL на значение, которое является восемью или меньшим
количеством символов или поместите Ваш пароль в файл опции.
В Unix программы MySQL особо обрабатывают имя хоста localhost
способом, который, вероятно, отличается от того, что Вы ожидаете по сравнению
с другими основанными на сети программами. Для соединений с
localhost программы MySQL пытаются соединиться с локальным
сервером при использовании файла сокета Unix. Это происходит даже если
--port или
-P заданы, чтобы определить номер порта. Чтобы гарантировать,
что клиент делает соединение по TCP/IP с локальным сервером, надо
использовать --host
или -h и определить значение имени хоста
127.0.0.1 или IP-адрес (или имя) локального сервера. Вы можете
также определить протокол соединения явно, даже для localhost ,
опцией --protocol=TCP
:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
Опция --protocol
позволяет Вам установить особый тип соединения, даже когда другие опции
обычно принимали бы значение по умолчанию к некоторому другому протоколу.
Если сервер сконфигурирован, чтобы принять соединения IPv6, клиенты
могут соединиться по IPv6, используя
--host=::1 . См.
раздел 6.1.9.
В Windows Вы можете вынудить клиента MySQL использовать соединение
именованного канала, определяя
--pipe или
--protocol=PIPE
или точку (. ) как имя хоста. Если соединения именованного
канала не включены, происходит ошибка. Используйте опцию
--socket ,
чтобы определить название канала, если Вы не хотите использовать имя канала
значения по умолчанию.
Соединения с удаленными серверами всегда используют TCP/IP. Эта команда
соединяется с remote.example.com через порт о умолчанию (3306):
shell> mysql --host=remote.example.com
Чтобы определить номер порта явно, используйте
--port или
-P :
shell> mysql --host=remote.example.com --port=13306
Вы можете определить номер порта для соединений с локальным сервером.
Однако, как обозначено ранее, соединения с
localhost в Unix будет использовать файл сокета по умолчанию.
Вы должны будете вызвать соединение TCP/IP как уже описано или любую опцию,
которая определяет, что номер порта будет проигнорирован.
Для этой команды программа использует файл сокета в Unix, опция
--port
проигнорирована:
shell> mysql --port=13306 --host=localhost
Чтобы заставить использовать номер порта,
вызовите программу любым из этих способов:
shell> mysql --port=13306 --host=127.0.0.1
shell> mysql --port=13306 --protocol=TCP
Следующий список суммирует опции, которые могут использоваться, чтобы
управлять, как программы клиента соединяются с сервером:
--host=
host_name ,
-h host_name
Хост, где сервер работает. Значение по умолчанию localhost .
-
--password[=
pass_val ] ,
-p[pass_val ]
Пароль учетной записи MySQL. Как описано ранее, значение пароля является
дополнительным, но если дано, не должно быть
пробелов между -p или
--password=
и паролем после этого. Значение по умолчанию: нет пароля.
-
--pipe ,
-W
В Windows соединитесь с сервером, используя именованный канал.
Сервер должен быть запущен с опцией
--enable-named-pipe , чтобы включить соединения по каналам.
-
--port=port_num
, -P port_num
Номер порта, чтобы использовать для соединений, сделанных, используя
TCP/IP. Значение по умолчанию 3306.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Эта опция явно определяет протокол, чтобы использовать для того, чтобы
соединиться с сервером. Полезно, когда другие параметры соединения обычно
заставляли бы использоваться не тот протокол.
Например, соединения в Unix к localhost
сделаны, используя файл сокета Unix по умолчанию:
shell> mysql --host=localhost
Чтобы вынудить соединение TCP/IP использоваться вместо этого, определите
--protocol :
shell> mysql --host=localhost --protocol=TCP
Следующая таблица показывает допустимые значения
--protocol
и указывает на платформы, на которых может использоваться каждое значение.
Значения не являются чувствительными к регистру.
Значение --protocol | Протокол соединения
| Допустимые операционные системы |
TCP |
Соединение TCP/IP с локальным или удаленным сервером |
Все |
SOCKET |
Соединение файла сокета Unix с локальным сервером | Unix
|
PIPE |
Соединение именованного канала с локальным или удаленным сервером |
Windows |
MEMORY |
Соединение совместно используемой памяти с локальным сервером |
Windows |
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений, сделанных,
используя совместно используемую память для локального сервера. Значение по
умолчанию MYSQL . Имя совместно используемой памяти
является чувствительным к регистру.
Сервер должен быть запущен с опцией
--shared-memory
, чтобы включить соединения совместно используемой памяти.
-
--socket=
file_name ,
-S file_name
В Unix имя файла сокета Unix, чтобы использовать для соединений,
сделанных, используя именованный канал для локального сервера. Имя файла
сокета Unix по умолчанию /tmp/mysql.sock .
В Windows это имя именованного канала, чтобы использовать для соединений с
локальным сервером. Имя канала Windows по умолчанию MySQL .
Имя канала не является чувствительным к регистру.
Сервер должен быть запущен с опцией
--enable-named-pipe , чтобы включить
соединения именованного канала.
--ssl*
Опции, которые начинаются на
--ssl , используются для того, чтобы основать безопасное
соединение с сервером, используя SSL, если сервер сконфигурирован с
поддержкой SSL. Для деталей см.
раздел 7.4.5.
--tls-version=protocol_list
Протоколы разрешены клиентом для зашифрованных соединений. Значение:
список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--user=user_name
, -u user_name
Имя пользователя учетной записи MySQL, которую Вы хотите использовать.
Имя пользователя по умолчанию ODBC в Windows или
Ваше имя для входа в систему в Unix.
Возможно определить различные значения по умолчанию, которые будут
использоваться, когда Вы делаете соединение так, чтобы Вы не вводили их в
командную строку каждый раз, когда Вы вызываете программу клиента.
Это может быть сделано несколькими способами:
5.2.3. Определение опций программы
Есть несколько способов определить опции для программ MySQL:
Опции обработаны в таком порядке, что если опция определена многократно,
последнее возникновение имеет приоритет. Следующая команда заставляет
mysql
соединяться с сервером на localhost :
shell> mysql -h example.com -h localhost
Если есть конфликт или даны связанные опции, более поздние опции имеют
приоритет перед более ранними опциями. Следующая команда не выполняет
mysql в
режиме no column names:
shell> mysql --column-names --skip-column-names
Программы MySQL определяют, какие опции даны сначала, просматривая
переменные окружения, затем обрабатывая файлы опции, а затем проверяя
командную строку. Это означает, что у переменных окружения есть самый
низкий приоритет и параметры командной строки самые важные.
Для сервера применяется одно исключение: файл опций
mysqld-auto.cnf
в каталоге данных обработан последним, таким образом, это имеет приоритет
даже перед параметрами командной строки.
Вы можете использовать в своих интересах способ, которым программы
MySQL обрабатывают опции, определяя значения опции по умолчанию для
программы в файле опции. Это позволяет Вам избежать вводить их каждый раз,
когда Вы выполняете программу, позволяя Вам переопределить значения по
умолчанию в случае необходимости при использовании
параметров командной строки.
5.2.4.
Использование опций в командной строке
Опции программы, определенные в командной строке,
следуют этим правилам:
Опции даны после названия команды.
- Параметр опции начинается с одного тире или двух тире, в зависимости от
того, является ли это краткой формой или длинной формой имени опции.
У многих опций есть краткие и подробные формы. Например,
-? и --help это краткая и длинная формы опции,
которая инструктирует программу MySQL выводить на экран
свое сообщение справки.
- Имена опции являются чувствительными к регистру.
-v и
-V являются законными и имеют различные значения. Это
соответствующие краткие формы опций --verbose и --version
.
- Некоторые опции берут значение после имени опции. Например,
-h localhost или
--host=localhost
задает имя хоста сервера MySQL программы клиента. Значение опции говорит
программе, на каком хосте работает сервер.
- Для длинной опции, которая берет значение, отделите имя опции и значение
знаком
= . Для короткой опции, которая берет значение, оно может
немедленно следовать за опцией или может быть пространство между ними:
-hlocalhost и -h localhost равнозначны.
Исключение: опция для того, чтобы определить Ваш пароль MySQL.
Эта опция может быть дана в подробной форме как
--password=
pass_val или
--password .
В последнем случае (без пароля) программа запрашивает у Вас пароль. Опция
пароля также может быть дана в краткой форме как
-ppass_val или -p .
Однако, для краткой формы, если значение пароля дано, оно должно
следовать за опцией без пробелов.
Причина этого состоит в том, что если пробел есть,
у программы нет никакого способа сказать, является ли следующим параметром
значение пароля или некоторый другой вид параметра.
Значит у следующих двух команд есть два абсолютно различных значения:
shell> mysql -ptest
shell> mysql -p test
Первая команда инструктирует mysql
использовать значение пароля test ,
но не определяет базы данных значения по умолчанию. Второе инструктирует
mysql
запрашивать значение пароля и использовать test как базу
данных по умолчанию.
- В пределах имен опции тире (
- ) и подчеркивание
(_ ) могут использоваться попеременно. Например,
--skip-grant-tables и
--skip_grant_tables равнозначны.
Однако, ведущие тире не могут быть даны как подчеркивания.
- Для опций, которые берут числовое значение, оно может быть дано с
суффиксом
K , M или G
(в любом регистре символов), чтобы указать на множитель 1024,
10242 или 10243.
Например, следующая команда говорит
mysqladmin
проверять с помощью ping-запросов сервер 1024 раза с паузой в
10 секунд между каждыми ping:
shell> mysqladmin --count=1K --sleep=10 ping
Значения опции, которые содержат пробелы, должны быть заключены в
кавычки, когда даны в командной строке. Например,
--execute
(-e ) может использоваться с
mysql, чтобы передать запросы SQL серверу.
Когда эта опция используется,
mysql выполняет запросы в значении опции и выходит.
Запросы должны быть приложены в кавычках. Например, Вы можете использовать
следующую команду, чтобы получить список учетных записей пользователей:
shell> mysql -u root -p --execute="SELECT User, Host FROM mysql.user"
Enter password: <******
+------+-----------+
| User | Host |
+------+-----------+
| | gigan |
| root | gigan |
| | localhost |
| jon | localhost |
| root | localhost |
+------+-----------+
shell>
Подробная форма (
--execute ) сопровождается знаком = .
Если Вы хотите использовать заключенные в кавычки значения в пределах
запроса, то Вы должны будете выйти из внутренних кавычек или использовать
в пределах запроса тип кавычек, отличный от используемых, чтобы заключить
запрос в кавычки непосредственно. Способности Вашего процессора команд
диктуют Ваш выбор для того, можете ли Вы использовать одиночные или двойные
кавычки и синтаксис для того, чтобы выйти из символов кавычки. Например, Вы
можете использовать двойные кавычки вокруг запроса и одиночные кавычки для
каких-либо заключенных в кавычки значений в пределах запроса.
Многократные запросы SQL можно передать в значении опции в
командной строке, отделенной точками с запятой:
shell> mysql -u root -p -e "SELECT VERSION();SELECT NOW()"
Enter password: <******
+---------------------+
| VERSION() |
+---------------------+
| 5.8.0-m17-debug-log |
+---------------------+
+---------------------+
| NOW() |
+---------------------+
| 2015-11-05 20:00:20 |
+---------------------+
5.2.5. Модификаторы опции программы
Некоторые опции управляют поведением, которое может быть включено или
выключено. Например, mysql
понимает опцию
--column-names
, которая определяет, вывести ли на экран строку имен столбцов в начале
результатов запроса. По умолчанию эта опция включена. Однако, Вы можете
хотеть отключить это в некоторых случаях.
Чтобы отключить имена столбцов, Вы можете определить опцию, используя
любую из этих форм:
--disable-column-names
--skip-column-names
--column-names=0
Префиксы --disable и --skip и суффикс
=0 все имеют тот же самый эффект: они выключают опцию.
Форма enabled опции может быть определена
любым из этих способов:
--column-names
--enable-column-names
--column-names=1
Значения ON , TRUE , OFF и
FALSE также признаны за булевы опции
(не чувствительны к регистру).
Если опция имеет префикс --loose , программа не выходит с
ошибкой, если она не признает опцию, а вместо этого
только выпускает предупреждение:
shell> mysql --loose-no-such-option
mysql: WARNING: unknown option '--loose-no-such-option'
Префикс --loose может быть полезным, когда Вы выполняете
программы от многократных установок MySQL на той же самой машине и
перечисляете опции в файле опции. Опция, которая не может быть признана всеми
версиями, может быть дана, используя --loose (или
loose в файле опции). Версии программы, которые признают опцию,
обычно обрабатывают ее, и версии, которые не признают, выпускают
предупреждение и игнорируют это.
Префикс --maximum доступен только для
mysqld
и разрешает установить предел в максимальное значение для системных
переменных сеанса программы клиента. Чтобы сделать это, используйте
--maximum с именем переменной. Например,
--maximum-max_heap_table_size=32M препятствует тому, чтобы любой
клиент применил табличный предел размера кучи больше, чем 32M.
--maximum предназначен для использования с системными
переменными, у которых есть значение сеанса. Если применяется к системной
переменной, у которой есть только глобальное значение, ошибка происходит.
Например, с --maximum-query_cache_size=4M
сервер производит эту ошибку:
Maximum value of 'query_cache_size' cannot be set
5.2.6. Использование файлов опций
Большинство программ MySQL может считать опции запуска из файлов опции.
Файлы опции обеспечивают удобный способ определить обычно используемые опции
так, чтобы они не были введены в командную строку каждый раз, когда
Вы выполняете программу.
Чтобы определить, читает ли программа файлы опции, вызовите ее с
--help . Для mysqld
используйте
--verbose и
--help .
Если файлы опции читаются, сообщение справки указывает, какие файлы она
ищет и какие группы опции признает.
Программа MySQL с --no-defaults
не читает файлов опции кроме .mylogin.cnf .
Сервер с отключенной переменной
persisted_globals_load не читает mysqld-auto.cnf .
Много файлов опции это файлы простого текста, создаваемые с использованием
любого текстового редактора. Исключения:
.mylogin.cnf , который содержит опции
входа в систему. Это зашифрованный файл, создаваемый
mysql_config_editor
. См. раздел
5.6.7. login path является группой опции,
которая разрешает только определенные опции: host ,
user , password , port и
socket . Программы клиента определяют, который путь входа в
систему читать из .mylogin.cnf через
--login-path
.
Чтобы определить альтернативное имя файла пути входа в систему, установите
переменную окружения MYSQL_TEST_LOGIN_FILE .
Эта переменная используется тестовым скриптом
mysql-test-run.pl, но также признана
mysql_config_editor
и клиентами MySQL, такими как
mysql,
mysqladmin
и т.д.
- Файл
mysqld-auto.cnf лежит в каталоге данных. Это файл
формата JSON содержит сохраненные системные настройки переменных. Это
создается сервером после выполнения SET
PERSIST , см. раздел 14.7.4.1.
Управление mysqld-auto.cnf должно быть оставлено серверу и
не выполнено вручную.
MySQL ищет файлы опции в порядке, описанном в следующем обсуждении, и
читает любой, который существует. Если файл опции, который Вы хотите
использовать, не существует, создайте его.
В Windows программы MySQL читают опции запуска из файлов, показанных в
следующей таблице, в указанном порядке (главные файлы считаны сначала, файлы,
читаемые позже, имеют приоритет).
Таблица 5.1. Чтение файлов опций
на системах Windows
Имя файла | Цель
|
%PROGRAMDATA% \MySQL\MySQL
Server 8.0\my.ini , %PROGRAMDATA% \MySQL\MySQL
Server 8.0\my.cnf
| Глобальные опции |
%WINDIR% \my.ini ,
%WINDIR% \my.cnf
| Глобальные опции |
C:\my.ini , C:\my.cnf |
Глобальные опции |
BASEDIR \my.ini ,
BASEDIR \my.cnf
|
Глобальные опции |
defaults-extra-file |
Файл, определенный с
--defaults-extra-file , если есть |
%APPDATA% \MySQL\.mylogin.cnf
| Опции пути входа в систему (только клиенты) |
DATADIR \mysqld-auto.cnf
| Опции, сохраненные с SET
PERSIST (только для сервера) |
В предыдущей таблице %PROGRAMDATA%
представляет каталог файловой системы, который содержит данные
приложения для всех пользователей хоста. Этот путь по умолчанию
C:\ProgramData в Microsoft Windows Vista и выше или
C:\Documents and Settings\All Users\Application Data
в старых версиях Microsoft Windows.
%WINDIR% представляет местоположение Вашего каталога
Windows. Это обычно C:\WINDOWS .
Используйте следующую команду, чтобы определить точное местоположение:
C:\> echo %WINDIR%
%APPDATA% представляет значение каталога данных приложений
Windows. Используйте следующую команду, чтобы
определить точное местоположение:
C:\> echo %APPDATA%
BASEDIR представляет каталог установки MySQL.
Когда MySQL 8.0 был установлен, используя MySQL Installer, это, как правило,
C:\PROGRAMDIR \MySQL\MySQL 8.0 Server , где
PROGRAMDIR представляет каталог программ (обычно
Program Files в Windows), См.
раздел 2.3.3.
DATADIR представляет каталог данных MySQL.
При использовании mysqld-auto.cnf , его значение по умолчанию:
местоположение каталога данных, встроенное, когда MySQL был собран, но может
быть изменено через опцию
--datadir , определенную в файле опции или параметром командной
строки, обработанным прежде mysqld-auto.cnf .
В Unix программы MySQL читают опции запуска из файлов, показанных в
следующей таблице, в указанном порядке (главные файлы считаны сначала, файлы,
читаемые позже, имеют приоритет).
В Unix MySQL игнорирует конфигурационные файлы, которые являются
перезаписываемыми всеми. Это сделано намеренно, как мера по безопасности.
Таблица 5.2. Чтение файлов опций в Unix
Имя файла | Смысл
|
/etc/my.cnf | Глобальные опции
|
/etc/mysql/my.cnf | Глобальные опции
|
SYSCONFDIR /my.cnf
|
Глобальные опции |
$MYSQL_HOME/my.cnf |
Определенные для сервера опции (только сервер) |
defaults-extra-file |
Файл, определенный
--defaults-extra-file , если есть |
~/.my.cnf |
Определенные для пользователя опции |
~/.mylogin.cnf |
Определенные для пользователя опции пути входа в систему (только клиенты)
|
DATADIR /mysqld-auto.cnf
| Опции, сохраненные SET
PERSIST (только сервер) |
В предыдущей таблице ~ представляет корневой каталог текущего
пользователя (значение $HOME ).
SYSCONFDIR представляет каталог, определенный опцией
SYSCONFDIR
CMake, когда MySQL был создан. По умолчанию это
каталог etc , расположенный под каталогом установки.
MYSQL_HOME это переменная окружения, содержащая путь к
каталогу, в котором лежит определенный для сервера my.cnf .
Если MYSQL_HOME не установлен и Вы запускаете сервер, используя
mysqld_safe
, то mysqld_safe
устанавливает это в BASEDIR ,
базовый каталог MySQL.
DATADIR представляет каталог данных MySQL.
При использовании mysqld-auto.cnf , значение по умолчанию:
местоположение каталога данных, встроенное, когда MySQL был собран, но может
быть изменено через опцию
--datadir , определенную в файле опции или параметр командной
строки, обработанный прежде mysqld-auto.cnf .
Если многократные экземпляры опции найдены, последний
имеет приоритет, с одним исключением: для
mysqld,
применяется первый экземпляр опции
--user
в качестве предосторожности безопасности, чтобы предотвратить пользователя,
определенного в файле опции от переопределения в командной строке.
Следующее описание синтаксиса файла опции относится к файлам, которые Вы
редактируете вручную. Это исключает .mylogin.cnf ,
который зашифрован и создается, используя
mysql_config_editor
и mysqld-auto.cnf , который сервер
создает в формате JSON.
Любая длинная опция, которая может быть дана в
командной строке, выполняя программу MySQL, может быть дана в файле опции
также. Чтобы получить список доступных параметров для программы, выполните
ее с --help . Для
mysqld используйте
--verbose и
--help .
Синтаксис для того, чтобы определить опции в файле опции подобен
синтаксису командной строки (см.
раздел 5.2.4). Однако, в файле опции, Вы опускаете начальные тире
и определяете только одну опцию на строку. Например, --quick и
--host=localhost в командной строке должны быть определены как
quick и host=localhost на отдельных строках в файле
опции. Определить опцию формы --loose-opt_name
в файле опции можно как loose-opt_name
.
Проигнорированы пустые строки в файлах опции. Непустые строки могут
принять любую из следующих форм:
#comment ,
;comment
Строки комментария начинаются # или ; .
# может быть в середине строки также.
[group ]
group задает название программы или группы, для
которой Вы хотите установить опции. После групповой строки любые
устанавливающие опцию строки относятся к названной группе до
конца файла опции или другой групповой строки.
Названия группы опции не являются чувствительными к регистру.
opt_name
Это эквивалентно --opt_name
в командной строке.
opt_name =value
Это эквивалентно --opt_name =value
в командной строке. В файле опции у Вас могут быть
пробелы вокруг = . Значение произвольно может быть приложено в
пределах одиночных или двойных кавычек, что полезно, если значение
содержит символ комментария # .
Начальные и конечные пробелы автоматически удалены
из имен опции и значений.
Вы можете использовать escape-последовательности \b ,
\t , \n , \r , \\ и
\s в значениях опции, чтобы представить клавишу Backspace,
tab, newline, carriage return, backslash и пробел.
В файлах опции применяются эти правила:
Наклонная черта влево, сопровождаемая допустимым символом
escape-последовательности, преобразована в символ, представленный
последовательностью. Например, \s преобразован в пробел.
- Наклонная черта влево, не сопровождаемая допустимым символом
escape-последовательности, остается неизменной.
Например,
\S сохранена как есть.
Предыдущие правила означают, что буквальная наклонная черта влево может
быть дана как \\ или \ ,
если это не сопровождается допустимым символом escape-последовательности.
Правила для escape-последовательностей в файлах опции отличаются
от правил для escape-последовательностей в строковых литералах
в запросах SQL. В последнем контексте, если
x
не допустимый символ escape-последовательности,
\x становится
x вместо
\x . См.
раздел 10.1.1.
Правила экранировки для значений файла опции являются особенно подходящими
для путей Windows, которые используют \ как разделитель пути.
Разделитель в пути Windows должен быть написан как \\ ,
если это сопровождается символом escape-последовательности. Это может быть
написано как \\ или \ . Альтернативно
/ может использоваться в путях Windows и будет обработан как
\ . Предположите, что Вы хотите определить основной каталог
C:\Program Files\MySQL\MySQL Server 8.0 в файле опции. Это может
быть сделано несколькими способами. Некоторые примеры:
basedir="C:\Program Files\MySQL\MySQL Server 8.0"
basedir="C:\\Program Files\\MySQL\\MySQL Server 8.0"
basedir="C:/Program Files/MySQL/MySQL Server 8.0"
basedir=C:\\Program\sFiles\\MySQL\\MySQL\sServer\s8.0
Если название группы опции то же, что и название программы,
опции в группе применяются определенно к этой программе. Например, группы
[mysqld] и [mysql] относятся к серверу
mysqld и
программе-клиенту mysql
.
Группа [client] считана всеми программами клиента
(но не
mysqld). Это позволяет Вам определить опции, которые
относятся ко всем клиентам. Например, [client]
соответствующая группа, чтобы определить пароль для того, чтобы соединиться с
сервером. Удостоверьтесь, что файл опции доступен только Вам, чтобы другие
люди не могли обнаружить Ваш пароль. Убедитесь, что вставили опцию в группу
[client] , если это не признано всеми
программами клиента, которые Вы используете. Программы, которые не понимают
опцию, выходят после отображения сообщения об ошибке, если Вы
пытаетесь выполнить их.
Вот типичный глобальный файл опции:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
[mysqldump]
quick
Вот типичный пользовательский файл опции:
[client]
# The following password will be sent to all standard MySQL clients
password="my password"
[mysql]
no-auto-rehash
connect_timeout=2
Чтобы создать группы опции только для чтения серверами
mysqld
от определенного ряда выпуска MySQL, используйте группы с названиями
[mysqld-5.7] , [mysqld-8.0] и т.д.
Следующая группа указывает, что параметр
sql_mode
должен использоваться только серверами MySQL с номера версии 8.0.x:
[mysqld-8.0]
sql_mode=TRADITIONAL
Возможно использовать директивы !include в файлах опции, чтобы
включать другие файлы опции и !includedir , чтобы искать
определенные каталоги с файлами опций. Например, чтобы включать файл
/home/mydir/myopt.cnf используйте следующее:
!include /home/mydir/myopt.cnf
Искать в каталоге /home/mydir и читать файлы опции, найденные
там, можно так:
!includedir /home/mydir
MySQL не дает гарантии порядка, в котором будут считаны
файлы опции в каталоге.
Любые файлы, которые будут найдены и включены через
!includedir в Unix должны иметь имена
файла, заканчивающиеся .cnf . В Windows проверяются файлы с
расширениями .ini или .cnf .
Напишите содержание включенного файла опции как любой другой файл опции.
Таким образом, это должно содержать группы опций, каждой из которых
предшествует строка [group ] , которая
указывает на программу, к которой применяются опции.
В то время, как включенный файл обрабатывается, только те опции в
группах, которые ищет текущая программа, используются.
Другие группы проигнорированы. Предположите, что my.cnf
содержит эту строку:
!include /home/mydir/myopt.cnf
И предположите, что /home/mydir/myopt.cnf похож на это:
[mysqladmin]
force
[mysqld]
key_buffer_size=16M
Если my.cnf обработан
mysqld,
используется только группа [mysqld] в
/home/mydir/myopt.cnf . Если файл обработан
mysqladmin
, используется только группа [mysqladmin] .
Если файл обработан какой-либо другой программой, никакие опции в
/home/mydir/myopt.cnf не используются.
!includedir обработана так же, за исключением того, что
считаны все файлы опции в названном каталоге.
Если файл опции содержит !include или
!includedir , файлы, названные этими директивами, обработаны
всякий раз, когда файл опции обработан, независимо от того, где
они появляются в файле.
5.2.7. Параметры командной строки
и обработка файла опции
Большинство программ MySQL, которые поддерживают файлы опции,
обрабатывает следующие опции. Поскольку эти опции затрагивают обработку файла
опции, их нужно дать в командной строке, а не в файле опции. Чтобы работать
должным образом, каждая из этих опций должна быть дана перед другими опциями,
за этими исключениями:
Определяя имена файла, избегайте использования символа ~ ,
потому что он мог бы интерпретироваться не так, как Вы ожидаете.
--defaults-extra-file=file_name
Считайте этот файл опции после глобального файла опции,
но (в Unix) перед пользовательским файлом опции и (на всех платформах) перед
файлом пути входа в систему. Для информации о порядке, в котором используются
файлы опции, см. раздел 5.2.6.
Если файл не существует или иначе недоступен, ошибка происходит.
file_name интерпретируется относительно текущего
каталога, если дано как относительный, а не полный путь.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует
или иначе недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный,
а не полный путь.
Исключения: Даже с
--defaults-file ,
mysqld читает mysqld-auto.cnf
и программы клиента читают .mylogin.cnf .
-
--defaults-group-suffix=str
Считайте не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysql
обычно читает группы [client] и [mysql] .
Если дана опция
--defaults-group-suffix=_other ,
mysql
также читает группы [client_other] и [mysql_other] .
-
--login-path=name
Считайте опции из названного пути входа в систему в
.mylogin.cnf . Вход в систему
является группой опций, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и то, как авторизоваться.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см. раздел
5.6.7.
Программа клиента читает группу опций,
соответствующую названному пути входа в систему,
в дополнение к группам опций, которые программа читает по умолчанию.
Рассмотрите эту команду:
shell> mysql --login-path=mypath
По умолчанию mysql
читает группы опций [client] и [mysql] .
Так для показанной команды
mysql читает [client] и [mysql]
из других файлов опции и [client] , [mysql] и
[mypath] из файла пути входа в систему.
Программы клиента читают файл пути входа в систему даже когда задана опция
--no-defaults
.
Чтобы определить дополнительное имя файла пути входа в систему, установите
переменную окружения MYSQL_TEST_LOGIN_FILE .
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы они были считаны.
Исключение: программы клиента читают файл пути входа в систему
.mylogin.cnf , если он существует, даже когда
--no-defaults
используется. Это разрешает паролям быть определенными более безопасным
способом, чем в командной строке, даже если есть
--no-defaults
(.mylogin.cnf создается
mysql_config_editor, см.
раздел 5.6.7).
-
--print-defaults
Напечатайте название программы и все опции, которые она
получает из файлов опции. Значения пароля замаскированы.
5.2.8.
Использование опций, чтобы установить переменные программы
У многих программ MySQL есть внутренние переменные, которые могут быть
установлены во время выполнения, используя. См. разделы
14.7.4.1 и
6.1.6.
Большинство этих переменных программы также может быть установлено при
запуске сервера при использовании того же самого синтаксиса, который
относится к определению опций программы. Например,
mysql
имеет переменную max_allowed_packet , которая управляет
максимальным размером коммуникационного буфера. Установить
max_allowed_packet для
mysql в
16MB можно, применив любую из следующих команд:
shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M
Первая команда определяет значение в байтах. Вторая определяет значение в
мегабайтах. Для переменных, которые берут числовое значение, оно может быть
дано с суффиксом K , M или G (в любом
регистре), чтобы указать на множитель 1024, 10242 или
10243. Например, когда устанавливается
max_allowed_packet , суффиксы указывают на модули килобайты,
мегабайты или гигабайты.
В файле опции переменные настройки даны без ведущих тире:
[mysql]
max_allowed_packet=16777216
Или:
[mysql]
max_allowed_packet=16M
Если Вам нравится, подчеркивания в имени переменной могут быть определены
как тире. Следующие группы опции эквивалентны. Обе устанавливают размер
ключевого буфера сервера в 512 МБ:
[mysqld]
key_buffer_size=512M
[mysqld]
key-buffer-size=512M
Переменная может быть определена при написании
полностью или как любая однозначная приставка. Например,
max_allowed_packet может быть установлена для
mysql как
--max_a , но не как --max потому, что
последний вариант неоднозначен:
shell> mysql --max=1000000
mysql: ambiguous option '--max=1000000' (max_allowed_packet, max_join_size)
Знайте, что использование переменных приставок может вызвать проблемы, когда
новые переменные осуществлены для программы. Приставка, которая однозначна
теперь, могла бы стать неоднозначной в будущем.
Суффиксы для того, чтобы определить множитель значения могут
использоваться, устанавливая переменную при запуске сервера, но не значение с
SET
во время выполнения. С другой стороны, с
SET , Вы можете назначить
значение переменной, используя выражение, которое не является истиной,
когда Вы устанавливаете переменную при запуске сервера. Например, первая из
следующих строк является законной при запуске сервера, но не вторая:
shell> mysql --max_allowed_packet=16M
shell> mysql --max_allowed_packet=16*1024*1024
Наоборот, вторая из следующих строк является законной во время выполнения,
но не первая:
mysql> SET GLOBAL max_allowed_packet=16M;
mysql> SET GLOBAL max_allowed_packet=16*1024*1024;
5.2.9.
Значения по умолчанию опции, опции, ожидаемые значения и знак =
В соответствии с соглашением, длинные формы опций, которые назначают
значение, написаны со знаком = :
shell> mysql --host=tonfisk --user=jon
Для опций, которые требуют значение (то есть, не имеют значения по
умолчанию), знака равенства не требуется и таким образом
следующее также допустимо:
shell> mysql --host tonfisk --user jon
В обоих случаях mysql
пытается соединиться с сервером MySQL, работающим на хосте,
названном tonfisk, с использованием учетной записи
с именем пользователя jon.
Из-за этого поведения могут иногда возникать проблемы, когда никакое
значение не обеспечено для опции, которая его ожидает. Рассмотрите следующий
пример, где пользователь соединяется с сервером MySQL, работающим на хосте
tonfisk как пользователь jon :
shell> mysql --host 85.224.35.45 --user jon
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 8.0.1 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| jon@% |
+----------------+
1 row in set (0.00 sec)
Исключение необходимого значения для одного из этих параметров
приводит к такой ошибке:
shell> mysql --host 85.224.35.45 --user
mysql: option '--user' requires an argument
В этом случае mysql
не был способен найти значение после опции
--user , потому
что ничто не прибыло после этого в командную строку. Однако, если Вы
опускаете значение для опции, которая не
является последней опцией, которая будет использоваться, Вы получаете иную
ошибку, которую Вы не можете ожидать:
shell> mysql --host --user jon
ERROR 2005 (HY000):
Unknown MySQL server host '--user' (1)
Поскольку mysql
предполагает, что любая строка после
--host
это имя хоста, --host
--user
интерпретируется как
--host=--user , клиент пытается соединиться с сервером MySQL,
работающим на хосте, названном --user.
Опции, имеющие значения по умолчанию, всегда требуют знак равенства,
назначая значение, будучи не в состоянии сделать это, они выдают ошибку.
Например, у опции сервера MySQL
--log-error есть значение по умолчанию
host_name .err , где
host_name это имя хоста, на котором работает MySQL.
Предположите, что Вы выполняете MySQL на компьютере, имя хоста которого
tonfisk, и рассмотрите следующий запрос
mysqld_safe
:
shell> mysqld_safe &
[1] 11699
shell> 080112 12:53:40 mysqld_safe Logging to '/usr/local/mysql/var/tonfisk.err'.
080112 12:53:40 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
shell>
После закрытия сервера, перезапустите это следующим образом:
shell> mysqld_safe --log-error &
[1] 11699
shell> 080112 12:53:40 mysqld_safe Logging to '/usr/local/mysql/var/tonfisk.err'.
080112 12:53:40 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
shell>
Результат тот же самый, с тех пор, как
--log-error
не сопровождается ничем больше на командной строке и поставляет свое
собственное значение по умолчанию. Символ & говорит
операционной системе выполнять MySQL в фоне,
это проигнорировано MySQL непосредственно.
Теперь предположим, что Вы хотите зарегистрировать ошибки в файле
my-errors.err . Вы могли бы попытаться запустить сервер с
--log-error my-errors , но это не имеет намеченного эффекта,
как показано здесь:
shell> mysqld_safe --log-error my-errors &
[1] 31357
shell> 080111 22:53:31 mysqld_safe Logging to '/usr/local/mysql/var/tonfisk.err'.
080111 22:53:32 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
080111 22:53:34 mysqld_safe mysqld from pid file /usr/local/mysql/var/tonfisk.pid ended
[1]+ Done./mysqld_safe --log-error my-errors
Сервер попытался начать использовать
/usr/local/mysql/var/tonfisk.err
как журнал ошибок, но завершился. Изучение последних немногих строк этого
файла показывает причину:
shell> tail /usr/local/mysql/var/tonfisk.err
2013-09-24 T 15:36:22.278034Z 0 [ERROR] Too many arguments (first extra is 'my-errors').
2013-09-24 T 15:36:22.278059Z 0 [Note] Use --verbose --help to get a list of available options!
2013-09-24 T 15:36:22.278076Z 0 [ERROR] Aborting
2013-09-24 T 15:36:22.279704Z 0 [Note] InnoDB: Starting shutdown...
2013-09-24 T 15:36:23.777471Z 0 [Note] InnoDB: Shutdown completed; log sequence number 2319086
2013-09-24 T 15:36:23.780134Z 0 [Note] mysqld: Shutdown complete
Так как
--log-error поставляет значение по умолчанию, Вы должны
использовать знак равенства, чтобы назначить иное значение,
как показано здесь:
shell> mysqld_safe --log-error=my-errors &
[1] 31437
shell> 080111 22:54:15 mysqld_safe Logging to '/usr/local/mysql/var/my-errors.err'.
080111 22:54:15 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
shell>
Теперь сервер был запущен успешно, и регистрирует ошибки в файл
/usr/local/mysql/var/my-errors.err .
Подобные проблемы могут возникнуть, определяя значения опции в файлах
опции. Например, рассмотрите my.cnf , который содержит следующее:
[mysql]
host
user
Когда mysql
читает этот файл, эти записи разобраны как
--host
--user или
--host=--user ,
с результатом, показанным здесь:
shell> mysql
ERROR 2005 (HY000): Unknown MySQL
server host '--user' (1)
Однако, в файлах опции знак равенства не принят. Предположите файл
my.cnf как показано здесь:
[mysql]
user jon
Попытка запустить mysql
в этом случае вызывает иную ошибку:
shell> mysql
mysql: unknown option '--user jon'
Подобная ошибка произошла бы, если Вы должны были написать host
tonfisk в файле опции, а не host=tonfisk .
Вместо этого Вы должны использовать знак равенства:
[mysql]
user=jon
Теперь попытка входа в систему удается:
shell> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 8.0.1 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT USER();
+---------------+
| USER() |
+---------------+
| jon@localhost |
+---------------+
1 row in set (0.00 sec)
Это не то же самое поведение как с командной строкой, где
знак равенства не требуется:
shell> mysql --user jon --host tonfisk
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 8.0.1 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT USER();
+---------------+
| USER() |
+---------------+
| jon@tonfisk |
+---------------+
1 row in set (0.00 sec)
Определение опции, требующей значения, без указания значения в файле опции,
заставляет сервер прерываться с ошибкой.
Предположите такой файл my.cnf :
[mysqld]
log_error
relay_log
relay_log_index
Это заставляет сервер терпеть неудачу на запуске, как показано здесь:
shell> mysqld_safe &
130924 10:41:46 mysqld_safe Logging to '/home/jon/bin/mysql/var/tonfisk.err'.
130924 10:41:46 mysqld_safe Starting mysqld daemon with databases from /home/jon/bin/mysql/var
130924 10:41:47 mysqld_safe mysqld from pid file /home/jon/bin/mysql/var/tonfisk.pid ended
Опция --log-error
не требует параметра, однако,
--relay-log
требует, как показано в журнале ошибок (который в отсутствие указанного
значения, по умолчанию datadir /
hostname .err ):
shell> tail -n 3 ../var/tonfisk.err
130924 10:41:46 mysqld_safe Starting mysqld daemon with databases from
/home/jon/bin/mysql/var
2013-09-24 T 15:41:47.217180Z 0 [ERROR] /home/jon/bin/mysql/libexec/mysqld:
option '--relay-log' requires an argument
2013-09-24 T 15:41:47.217479Z 0 [ERROR] Aborting
Это изменение от предыдущего поведения, где сервер интерпретировал бы
последние две строки в примере my.cnf как
--relay-log=relay_log_index и создавал бы файл системного
журнала реле, используя relay_log_index
как базовое имя (Bug #25192).
5.2.10.
Установка переменных окружения
Переменные окружения могут быть установлены в командной строке или в
файле. Чтобы установить переменную надолго, Вы можете установить это в файле
запуска или при использовании интерфейса, обеспеченного Вашей системой с этой
целью. Консультируйтесь с документацией для своего интерпретатора команд
для определенных деталей.
Раздел 5.9 перечисляет все переменные окружения, которые затрагивают
работу программы MySQL.
Чтобы определить значение для переменной окружения, используйте синтаксис,
подходящий для Вашего процессора команды. Например, в Windows
Вы можете установить переменную USER , чтобы определить Ваше имя
учетной записи MySQL. Чтобы сделать так, используйте этот синтаксис:
SET USER=your_name
Синтаксис в Unix зависит от Вашей оболочки. Предположите, что Вы хотите
определить номер порта TCP/IP, используя переменную
MYSQL_TCP_PORT . Типичный синтаксис (что касается
sh, ksh,
bash, zsh и
т.п.):
MYSQL_TCP_PORT=3306
export MYSQL_TCP_PORT
Первая команда устанавливает переменную, команда export
экспортирует переменную в окружающую среду оболочки так, чтобы ее значение
стало доступным для MySQL и других процессов.
Для csh и tcsh
используйте setenv, чтобы сделать переменную
оболочки доступной для окружающей среды:
setenv MYSQL_TCP_PORT 3306
Команды, чтобы установить переменные окружения, могут быть выполнены в
Вашей командной строке, чтобы немедленно вступить в силу, но настройки
сохраняются только, пока Вы не выходите из системы.
Чтобы иметь эти настройки каждый раз, когда Вы входите в систему, используйте
интерфейс, обеспеченный Вашей системой, или поместите соответствующую команду
в файле запуска, который Ваш интерпретатор
команд читает каждый раз, когда запускается.
В Windows Вы можете установить переменные окружения, используя System
Control Panel (в Advanced).
В Unix типичные файлы запуска оболочки
.bashrc или .bash_profile в
bash или .tcshrc для
tcsh.
Предположите, что Ваши программы MySQL установлены в
/usr/local/mysql/bin и Вы хотите облегчить вызов этих программ.
Чтобы сделать это, установите значение переменной окружения
PATH , чтобы включать тот каталог. Например, если Ваша оболочка
bash, добавьте следующую строку к
Вашему файлу .bashrc :
PATH=${PATH}:/usr/local/mysql/bin
bash использует различные файлы запуска для
оболочек входа в систему и nonlogin-оболочек, таким образом, Вы могли бы
хотеть добавить установку в .bashrc для оболочек входа в систему
и в .bash_profile для остальных, чтобы
установить PATH независимо.
Если Ваша оболочка tcsh,
добавьте следующую строку к Вашему .tcshrc :
setenv PATH ${PATH}:/usr/local/mysql/bin
Если соответствующий файл запуска не существует в Вашем корневом
каталоге, создайте его.
После изменения Вашего PATH , откройте новую консоль
в Windows или войдите в систему снова в Unix так, чтобы
установка вступила в силу.
5.3.
Сервер MySQL и программы запуска сервера
Этот раздел описывает mysqld
, сервер MySQL, и несколько программ, которые
используются, чтобы запустить сервер.
5.3.1. mysqld,
собственно сервер MySQL
mysqld,
также известный как сервер MySQL, является основной программой, которая
делает большую часть работы. Сервер MySQL управляет доступом к каталогу
данных MySQL, который содержит базы данных и таблицы. Каталог данных это
также местоположение значения по умолчанию для другой информации, такой как
файлы состояния и файлы системного журнала.
Когда сервер MySQL запускается, он слушает сетевые соединения из программ
клиента и управляет доступом к базам данных от имени тех клиентов.
У mysqld
есть много опций, которые могут быть определены при запуске.
Для полного списка опций выполните:
shell> mysqld --verbose --help
У сервера MySQL также есть ряд системных переменных, которые затрагивают
работу. Системные переменные могут быть установлены при запуске сервера,
многие из них могут быть изменены во время выполнения, чтобы произвести
динамическое реконфигурирование сервера. У сервера MySQL также есть ряд
переменных состояния, которые предоставляют информацию о работе. Вы можете
контролировать эти переменные состояния, чтобы получить доступ к техническим
характеристикам во время выполнения.
Для полного описания опций команды MySQL Server, системных переменных и
переменных состояния см. раздел 6.1.
Для информации об установке MySQL и начальной конфигурации см.
главу 2.
5.3.2.
mysqld_safe скрипт запуска MySQL
mysqld_safe
это рекомендуемый способ запустить
mysqld
в Unix. mysqld_safe
добавляет некоторые сервисы системы безопасности, такие как
перезапуск сервера, когда ошибка происходит, и журналирование информации во
время выполнения в файл журнала ошибок. Описание регистрации ошибок дано
позже в этом разделе.
Для установки MySQL, используя дистрибутив RPM,
запуск сервера и завершение работы управляется systemd
на нескольких платформах Linux. На этих платформах больше не установлен
mysqld_safe
, потому что это не нужно. Для получения дополнительной информации см.
раздел 2.5.9.
mysqld_safe
пытается запустить
mysqld. Чтобы переопределить поведение по умолчанию и
определить явно название сервера, надо указать опцию
--mysqld
или
--mysqld-version в
mysqld_safe. Вы можете также использовать
--ledir ,
чтобы указать на каталог, где
mysqld_safe должен искать сервер.
Многие из опций
mysqld_safe те же самые, как опции
mysqld. См.
раздел 6.1.4.
Опции, неизвестные ,
mysqld_safe передаются
mysqld,
если они определены в командной строке, но проигнорированы, если они
определены в группе [mysqld_safe] файла опции. См.
раздел 5.2.6.
mysqld_safe
читает все опции из групп [mysqld] ,
[server] и [mysqld_safe] в файлах опции. Например,
если Вы определяете [mysqld] примерно так,
mysqld_safe
будет находить и использовать опцию
--log-error
:
[mysqld]
log-error=error.log
Для обратной совместимости
mysqld_safe также читает [safe_mysqld] , но
Вы должны переименовать такие разделы в [mysqld_safe] .
mysqld_safe
принимает опции в командной строке и в файлах опции, как описано
в следующей таблице. Для информации о файлах опции, используемых программами
MySQL, см. раздел 5.2.6.
Таблица 5.3. Опции
mysqld_safe
Формат | Описание
|
--basedir | Путь к каталогу установки MySQL |
--core-file-size | Размер основного файла, который mysqld должен
быть в состоянии создать |
--datadir | Путь к каталогу данных |
--defaults-extra-file | Читать файл опции в дополнение к
обычным файлам опции |
--defaults-file | Названный файл опции только для чтения |
--help | Сообщение справки и выход |
--ledir | Путь к каталогу, где сервер расположен |
--log-error | Журналировать ошибки при записи к названному файлу
|
--malloc-lib | Альтернатива библиотеки malloc для mysqld |
--mysqld | Название программы сервера (в каталоге ledir) |
--mysqld-safe-log-timestamps | Формат метки времени
для того, чтобы зарегистрировать |
--mysqld-version | Суффикс для названия программы сервера |
--nice | Используйте nice, чтобы установить
приоритет планирования сервера |
--no-defaults | Не читать файлы опций |
--open-files-limit | Число файлов, которые mysqld должен
быть в состоянии открыть |
--pid-file | Путь к файлу ID процесса |
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта, на котором слушать соединения TCP/IP |
--skip-kill-mysqld | Не пытаться уничтожить
беспризорные процессы mysqld |
--skip-syslog | Не делать сообщений ошибки при записи к syslog,
использовать файл журнала ошибок |
--socket
| Файл сокета, на котором слушать сокетные соединения Unix
|
--syslog
| Сообщения ошибки при записи в syslog |
--syslog-tag | Суффикс тега для сообщений, написанных в syslog
|
--timezone | Установить переменную окружения часового пояса
TZ к названному значению |
--user
| Выполнить mysqld как пользователь, имеющий имя user_name или
числовой идентификатор ID user_id |
--help
Вывести на экран сообщение справки и выйти.
-
--basedir=
dir_name
Путь к каталогу установки MySQL.
-
--core-file-size=size
Размер основного файла, который
mysqld должен быть в состоянии создать. Значение
опции передают ulimit -c.
-
--datadir=dir_name
Путь к каталогу данных.
-
--defaults-extra-file=file_name
Название файла опции, который будет считан в дополнение к обычным файлам
опции. Это должно быть первой опцией в командной строке, если используется.
Если файл не будет существовать или будет иначе недоступен, то
сервер выйдет с ошибкой.
-
--defaults-file=file_name
Название файла опции, который будет считан вместо обычных файлов опции.
Это должно быть первой опцией в командной строке, если используется.
-
--ledir=dir_name
Если mysqld_safe
не может найти сервер, используйте эту опцию, чтобы указать на
путь к каталогу, где сервер расположен.
-
--log-error=file_name
Написать журнал ошибок в данный файл. См.
раздел 6.4.2.
-
--mysqld-safe-log-timestamps
Эта опция управляет форматом timestamp в выводе журнала, произведенном
mysqld_safe
. Следующий список описывает разрешенные значения. Для любого другого
значения mysqld_safe
регистрирует предупреждение и использует
формат UTC .
UTC , utc
ISO 8601 UTC (аналогично
--log_timestamps=UTC для сервера). Это значение по умолчанию.
SYSTEM , system
Формат местного времени ISO 8601 (то же самое, как
--log_timestamps=SYSTEM
для сервера).
HYPHEN , hyphen
YY-MM-DD h:mm:ss , как в
mysqld_safe для MySQL 5.6.
LEGACY , legacy
YYMMDD hh:mm:ss , как в
mysqld_safe
до MySQL 5.6.
--malloc-lib=[lib_name ]
Название библиотеки, чтобы использовать для распределения памяти вместо
системной библиотеки malloc() .
Значение опции должно быть одним из каталогов
/usr/lib , /usr/lib64 ,
/usr/lib/i386-linux-gnu или
/usr/lib/x86_64-linux-gnu .
--malloc-lib работает, изменяя значение переменной окружающей
среды LD_PRELOAD , чтобы затронуть динамическое соединение, чтобы
позволить загрузчику найти библиотеку распределения памяти, когда запускается
mysqld:
Если опция не дана или дана без значения
(--malloc-lib=
), LD_PRELOAD не изменена, и никакая попытка не
будет предпринята, чтобы использовать tcmalloc .
- Если опция дана как
--malloc-lib=tcmalloc , то
mysqld_safe ищет библиотеку
tcmalloc в /usr/lib . Если tmalloc
найдена, путь добавлен к началу LD_PRELOAD для
mysqld. Если
tcmalloc не найдена,
mysqld_safe прерывается с ошибкой.
- Если опция дана как
--malloc-lib=
/path/to/some/library ,
то весь путь добавлен к началу LD_PRELOAD .
Если путь указывает на несуществующий или нечитабельный файл,
mysqld_safe
прекращает работу с ошибкой.
- Для случаев, где
mysqld_safe добавляет путь к
LD_PRELOAD ,
это добавляет путь к началу любого существующего значения, которое
уже имеет переменная.
На системах, которые управляют сервером, используя systemd,
mysqld_safe
недоступен. Вместо этого определите библиотеку распределения,
устанавливая LD_PRELOAD в /etc/sysconfig/mysql .
Пользователи Linux могут использовать библиотеку
libtcmalloc_minimal.so на любой платформе, для которой
пакет tcmalloc установлен в /usr/lib ,
добавляя эти строки к файлу my.cnf :
[mysqld_safe]
malloc-lib=tcmalloc
Чтобы использовать определенную библиотеку tcmalloc ,
определите ее полный путь. Пример:
[mysqld_safe]
malloc-lib=/opt/lib/libtcmalloc_minimal.so
-
--mysqld=prog_name
Название программы сервера (в каталоге ledir ),
что Вы хотите запустить. Эта опция необходима, если Вы используете
двоичный дистрибутив MySQL, но имеете каталог данных за пределами двоичного
дистрибутива. Если
mysqld_safe не может найти сервер, используйте опцию
--ledir ,
чтобы указать путь к каталогу, где сервер расположен.
Эта опция может быть дана только в командной строке а не в файле опций.
-
--mysqld-version=suffix
Эта опция подобна
--mysqld , но Вы определяете только суффикс для названия программы
сервера. Базовое имя, как предполагается, является
mysqld.
Например, если Вы используете
--mysqld-version=debug , то
mysqld_safe
запускает программу
mysqld-debug в каталоге ledir . Если параметр
--mysqld-version пуст,
mysqld_safe использует
mysqld
из каталога ledir .
Эта опция может быть дана только в командной строке а не в файле опции.
-
--nice=priority
Используйте nice , чтобы установить приоритет планирования
сервера в данное значение.
-
--no-defaults
Не читайте файлы опций. Это должно быть первой опцией в
командной строке, если это используется.
-
--open-files-limit=count
Число файлов, которые mysqld
должен быть в состоянии открыть. Значение опции передают
ulimit -n.
Вы должны запустить
mysqld_safe как root , чтобы эта опция
функционировала должным образом.
--pid-file=file_name
Путь файла process ID.
mysqld_safe
создает файл PID mysqld_safe.pid
в каталоге данных MySQL, запускаясь.
-
--plugin-dir=dir_name
Путь каталога плагинов.
-
--port=port_num
Номер порта, который сервер должен использовать, прислушиваясь к
соединениям TCP/IP. Должен быть 1024 или выше, если сервер не запущен
от имени root .
-
--skip-kill-mysqld
Не пытаться уничтожить беспризорные процессы
mysqld
при запуске. Эта опция работает только в Linux.
-
--socket=
path
Файл сокета Unix, который сервер должен использовать
для местных соединений.
-
--syslog ,
--skip-syslog
--syslog
сообщения об ошибках, которые будут посланы в syslog
на системах, которые поддерживают программу
logger. --skip-syslog
подавляет использование syslog , сообщения написаны в
файл журнала ошибок.
Когда syslog используется, daemon.err
facility/severity используется для всех сообщений журнала.
Использование этих опций, чтобы управлять журналированием
mysqld
устарело. Используйте серверную системную переменную
log_syslog
вместо этого. Чтобы управлять средством, используйте серверную системную
переменную
log_syslog_facility , см. раздел
6.4.2.
-
--syslog-tag=tag
Для того, чтобы зарегистрировать в syslog
сообщения от mysqld_safe
и mysqld
написаны с идентификаторами
mysqld_safe и mysqld , соответственно.
Чтобы определить суффикс для идентификаторов, надо использовать
--syslog-tag=tag ,
который изменяет идентификаторы, чтобы быть
mysqld_safe-tag и
mysqld-tag .
Использование этой опции, чтобы управлять журналированием
mysqld
устарело. Используйте серверную переменную
log_syslog_tag ,
см. раздел 6.4.2.
-
--timezone=timezone
Установите переменную окружения TZ часового пояса к данному
значению опции. Консультируйтесь со своей документацией операционной системы
для форматов спецификации часового пояса.
-
--user={user_name |user_id }
Выполните mysqld
как пользователя, имеющего имя
user_name или числовой пользовательский идентификатор
ID user_id (User
в этом контексте обращается к системной учетной записи, а не пользователю
MySQL, перечисленному в таблицах привилегий).
Если Вы выполняете
mysqld_safe с опцией
--defaults-file
или
--defaults-extra-file , чтобы назвать файл опции, опция должна быть
первой, данной в командной строке, или файл опции не будет использоваться.
Например, эта команда не будет использовать названный файл опции:
mysql> mysqld_safe --port=port_num \
--defaults-file=file_name
Вместо этого используйте следующую команду:
mysql> mysqld_safe --defaults-file=file_name \
--port=port_num
Скрипт mysqld_safe
написан так, чтобы он обычно мог запустить сервер,
который был установлен или из исходных текстов или двоичного дистрибутива
MySQL, даже при том, что эти типы дистрибутивов, как правило, устанавливают
сервер в немного отличающихся местоположениях. См.
раздел 2.1.4.
mysqld_safe
ожидает одно из следующих условий:
Сервер и базы данных могут быть найдены относительно рабочего
каталога (каталог, из которого
mysqld_safe вызван). Для двоичных дистрибутивов
mysqld_safe
смотрит в соответствии со своим рабочим каталогом для каталогов
bin и data . Для дистрибутивов исходных текстов это
ищет подкаталоги libexec и var .
Это условие нужно соблюдать, если Вы выполняете
mysqld_safe
из своего каталога установки MySQL (например,
/usr/local/mysql для двоичного дистрибутива).
- Если сервер и базы данных не могут быть найдены относительно рабочего
каталога, mysqld_safe
пытается определить местонахождение их абсолютными
путями. Типичные местоположения это
/usr/local/libexec и /usr/local/var .
Фактические местоположения определены от значений, сконфигурированных в
дистрибутиве в то время, когда он был создан. Они должны быть правильными,
если MySQL установлен в местоположении, определенном во время конфигурации.
Так как mysqld_safe
пытается найти сервер и базы данных относительно его
собственного рабочего каталога, Вы можете установить двоичный
дистрибутив MySQL где угодно, пока Вы выполняете
mysqld_safe
из каталога установки MySQL:
shell> cd mysql_installation_directory
shell> bin/mysqld_safe &
Если mysqld_safe
терпит неудачу, даже когда вызван из каталога установки MySQL,
определите опции
--ledir и
--datadir , чтобы указать на каталоги, в которых сервер и базы
данных расположены на Вашей системе.
mysqld_safe
пытается использовать утилиты системы
sleep и date,
чтобы определить, сколько раз в секунду попыталось запуститься. Если эти
утилиты присутствуют, и предпринято больше 5 запусков в секунду,
mysqld_safe
ждет 1 целую секунду прежде, чем запуститься снова. Это предназначено,
чтобы предотвратить чрезмерное использование центрального процессора в случае
повторных отказов (Bug #11761530, Bug #54035).
Когда Вы используете
mysqld_safe, чтобы запустить
mysqld,
mysqld_safe
устраивает ошибку (и сообщение), от себя и от
mysqld, чтобы
пойти к тому же самому месту назначения.
Есть несколько опций
mysqld_safe для того, чтобы управлять местом
назначения этих сообщений:
Если ни одна из этих опций не дана, значение по умолчанию
--skip-syslog
.
Когда mysqld_safe
пишет сообщение, уведомления идут к месту назначения
журналирования (syslog или файл журнала ошибок) и
stdout . Ошибки идут к месту
назначения журналирования и stderr .
Управление регистрацией mysqld
из
mysqld_safe устарело. Используйте встроенную в сервер
поддержку syslog , см.
раздел 6.4.2.
5.3.3. Скрипт запуска сервера
mysql.server
Дистрибутивы MySQL в Unix включают скрипт, названный
mysql.server
, который запускает сервер, используя
mysqld_safe
. Это может использоваться на системах, таких как Linux и Solaris,
, которые используют стиль System V-каталогов, чтобы запустить и остановить
системные службы. Это также используется OS X Startup Item для MySQL.
Для установки MySQL, используя дистрибутив RPM, запуск сервера и
завершение работы управляется systemd на нескольких платформах Linux. На этих
платформах больше не установлены
mysql.server и
mysqld_safe
, потому что они не нужны. Для получения дополнительной информации см.
раздел 2.5.9.
Чтобы запустить или остановить сервер вручную, используя
mysql.server
, вызовите это с параметром start или stop
:
shell> mysql.server start
shell> mysql.server stop
Прежде, чем mysql.server
запускает сервер, он изменяет местоположение на каталог
установки MySQL и затем вызывает
mysqld_safe. Чтобы выполнить сервер от
некоторого определенного пользователя, добавьте соответствующую опцию
user в группу [mysqld] файла
/etc/my.cnf , как показано позже в этом разделе. Возможно, что Вы
должны отредактировать
mysql.server, если Вы установили двоичный дистрибутив
MySQL в нестандартном местоположении. Измените это, чтобы изменить
местоположение в надлежащий каталог прежде, чем это выполнит
mysqld_safe
. Если Вы делаете это, Ваша измененная версия
mysql.server
может быть перезаписана, если Вы обновляете MySQL в будущем,
таким образом, Вы должны сделать копию своей версии.
mysql.server stop
останавливает сервер, посылая ему сигнал.
Вы можете также остановить сервер вручную, выполняя
mysqladmin shutdown
.
Чтобы запустить и остановить MySQL автоматически на Вашем сервере, Вы
должны добавить команды к соответствующим местам в Ваших
файлах /etc/rc* .
Если Вы используете пакет RPMсервера Linux
(MySQL-server-VERSION .rpm )
или родную установку пакета Linux, скрипт
mysql.server
может быть установлен в /etc/init.d с именем
mysql . См.
раздел 2.5.4.
Некоторые продавцы обеспечивают пакеты RPM, которые устанавливают скрипт
запуска под другим именем, таким как
mysqld.
Если Вы устанавливаете MySQL из исходных текстов или с использованием
двоичного формата распределения, который не устанавливает
mysql.server
автоматически, Вы можете установить это вручную.
Скрипт может быть найден в подкаталоге support-files
в соответствии с каталогом установки MySQL или в исходном дереве MySQL.
Скопируйте это в /etc/init.d с именем
mysql,
затем сделайте это выполнимым:
shell> cp mysql.server /etc/init.d/mysql
shell> chmod +x /etc/init.d/mysql
Старые системы Red Hat используют /etc/rc.d/init.d вместо
/etc/init.d . Скорректируйте предыдущие команды соответственно.
Альтернативно, сначала создайте /etc/init.d как символическую
ссылку, которая указывает на /etc/rc.d/init.d :
shell> cd /etc
shell> ln -s rc.d/init.d .
После установки скрипта должны были активироваться команды,
чтобы работать при системном запуске, это зависит от Вашей операционной
системы. В Linux Вы можете использовать chkconfig
:
shell> chkconfig --add mysql
На некоторых системах Linux следующая команда также, кажется, необходима,
чтобы полностью включить mysql
:
shell> chkconfig --level 345 mysql on
В FreeBSD скрипты запуска вообще должны быть в
/usr/local/etc/rc.d/ . rc(8) manual page
заявляет, что скрипты в этом каталоге выполнены, только если их базовое имя
соответствует образцу имени файла оболочки *.sh .
Любые другие файлы или каталоги в пределах каталога тихо проигнорированы.
Другими словами, на FreeBSD, Вы должны установить скрипт
mysql.server как
/usr/local/etc/rc.d/mysql.server.sh , чтобы
включить автоматический запуск.
Как альтернатива предыдущей установке, некоторые операционные системы
также используют /etc/rc.local или
/etc/init.d/boot.local , чтобы
запустить дополнительные службы. Чтобы запустить MySQL, используя этот метод,
добавьте команду к соответствующему файлу запуска:
/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
Для других систем консультируйтесь со своей документацией операционной
системы, чтобы видеть, как установить скрипты запуска.
mysql.server
читает опции из групп
[mysql.server] и [mysqld]
файлов опции. Для обратной совместимости это также читает
[mysql_server] , но Вы должны переименовать такие
разделы в [mysql.server] .
Вы можете добавить опции для
mysql.server в глобальном файле
/etc/my.cnf . Типичный файл /etc/my.cnf :
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
Скрипт mysql.server
поддерживает следующие опции. Если определены, они
должны быть размещены в файле опций, а не в
командной строке.
mysql.server поддерживает только
start и stop как параметры командной строки.
Таблица 5.4.
Опции mysql.server
Формат | Описание
|
--basedir |
Путь к каталогу установки MySQL |
--datadir | Путь к каталогу данных MySQL |
--pid-file | Файл, в который сервер должен записать
свой идентификатор процесса |
--service-startup-timeout |
Сколько времени ждать запуска сервера |
--basedir=dir_name
Путь к каталогу установки MySQL.
-
--datadir=dir_name
Путь к каталогу данных MySQL.
-
--pid-file=file_name
Путь к файлу, в который сервер должен написать process ID.
Если эта опция не дана,
mysql.server использует значение по умолчанию
host_name .pid . Значение файла PID, которое
передают mysqld_safe
, переопределяет любое значение, определенное в группе
[mysqld_safe] файла опции. Поскольку
mysql.server
читает группу [mysqld] файла опции, но не
[mysqld_safe] , Вы можете гарантировать, что
mysqld_safe
получает то же самое значение, когда вызывается с использованием
mysql.server
как тогда, когда вызван вручную, помещая тот же самый
pid-file в обе группы
[mysqld_safe] и [mysqld] .
-
--service-startup-timeout=seconds
Сколько времени в секундах ждать подтверждения запуска сервера. Если
сервер не запускается в пределах этого времени,
mysql.server
выходит с ошибкой. Значение по умолчанию 900. Значение 0 значит
не ждать запуска вообще. Отрицательные величины означают ждать бесконечно
(никакого тайм-аута).
5.3.4.
mysqld_multi, управление
несколькими серверами MySQL
mysqld_multi
разработан, чтобы управлять несколькими процессами
mysqld,
которые прислушиваются к соединениям на различных файлах сокета Unix и портах
TCP/IP. Это может запустить или остановить серверы или сообщить об
их текущем статусе.
Для установки MySQL, используя дистрибутив RPM, запуск сервера и
завершение работы управляется systemd на нескольких платформах Linux. На этих
платформах больше не установлен
mysqld_multi, потому что это не нужно.
Для информации об использовании systemd, чтобы обработать многократные
экземпляры MySQL, см. раздел 2.5.9.
mysqld_multi
ищет группы [mysqldN ] в
my.cnf (или в файле, названном в опции
--defaults-file ). N
может быть любым положительным целым числом. Это число упомянуто в следующем
обсуждении как групповое число опции или GNR .
Групповые числа отличают группы опций от друг друга и используются в качестве
параметров mysqld_multi
, чтобы определить, какие серверы Вы хотите запустить,
остановить или получить отчет о состоянии. Опции, перечисленные в этих
группах, являются тем же самым, что Вы использовали бы в группе
[mysqld] для того, чтобы начать
mysqld.
См. раздел 2.9.5.
Однако, используя многократные серверы, необходимо чтобы каждый использовал
собственное значение для таких опций, как файл сокета Unix и номер порта
TCP/IP. Для получения дополнительной информации о том, которые опции должны
быть уникальны для сервера в окружающей среде нескольких серверов см.
раздел 6.7.
Чтобы вызвать
mysqld_multi, используйте следующий синтаксис:
shell> mysqld_multi [options ]
{start|stop|reload|report} [GNR [,GNR ] ...]
start , stop , reload (остановить и
перезапустить) и report указывают, что надо сделать. Вы можете
выполнить определяемую работу для единственного или многих серверов, в
зависимости от списка GNR , который следует за именем
опции. Если нет никакого списка,
mysqld_multi
выполняет работу для всех серверов в файле опции.
Каждое значение GNR
представляет групповое число опции или диапазон групповых чисел. Значение
должно быть числом в конце названия группы в файле опции. Например,
GNR для группы
[mysqld17] = 17 . Чтобы определить диапазон чисел,
отделите числа тире. GNR 10-13 задает
группы от [mysqld10] по [mysqld13] .
Многократные группы или групповые диапазоны могут быть определены в командной
строке, через запятую. Не должно быть никаких пробельных символов (пробелы
или табуляции) в списке GNR ,
что-либо после пробельного символа проигнорировано.
Эта команда запускает единственную группу
опции сервера [mysqld17] :
shell> mysqld_multi start 17
Эта команда останавливает несколько серверов, используя группы опции
[mysqld8] и с [mysqld10] по [mysqld13]
:
shell> mysqld_multi stop 8,10-13
Для примера того, как Вы могли бы настроить файл опции,
используйте эту команду:
shell> mysqld_multi --example
mysqld_multi
ищет файлы опции следующим образом:
В файлах опции ищутся группы [mysqld_multi] и
[mysqldN ] . Группа
[mysqld_multi] может использоваться для опций
mysqld_multi
. Группы [mysqldN ]
могут использоваться для опций, которые передают к определенным экземплярам
mysqld.
Группы [mysqld] или [mysqld_safe]
могут использоваться для общих опций, считанных всеми экземплярами
mysqld или
mysqld_safe
. Вы можете определить
--defaults-file=file_name , чтобы
использовать иной конфигурационный файл для того того случая, когда группы
[mysqld] или [mysqld_safe]
из того файла будут использоваться.
mysqld_multi
поддерживает следующие опции.
--help
Вывести на экран сообщение справки и выйти.
-
--example
Вывести на экран типовой файл опции.
-
--log=file_name
Определить название файла системного журнала. Если файл существует, вывод
журнала направлен к нему.
-
--mysqladmin=prog_name
mysqladmin
, который будет использоваться, чтобы остановить серверы.
-
--mysqld=prog_name
mysqld,
который будет использоваться. Отметьте, что Вы можете определить
mysqld_safe
как значение для этой опции также. Если Вы используете
mysqld_safe
, чтобы запустить сервер, Вы можете включать опции mysqld
или ledir в соответсвующую группу
[mysqldN ] .
Эти опции указывают на название сервера, который
mysqld_safe
должен запустить и путь каталога, где сервер расположен.
См. описания для этих опций в разделе
5.3.2:
[mysqld38]
mysqld = mysqld-debug
ledir = /opt/local/mysql/libexec
-
--no-log
Информация о журнале печатается в stdout вместо файла
системного журнала. По умолчанию вывод идет в файл системного журнала.
-
--password=password
Пароль MySQL, чтобы использовать, вызывая
mysqladmin
. Отметьте, что значение пароля не является дополнительным для этой
опции, в отличие от других программ MySQL.
-
--silent
Тихий режим; отключить предупреждения.
-
--tcp-ip
Соединитесь с каждым сервером MySQL через порт TCP/IP вместо файла сокета
Unix. Если файл сокета отсутствует, сервер мог бы все еще работать, но
доступен только через порт TCP/IP. По умолчанию соединения сделаны, используя
файл сокета Unix. Эта опция влияет на
операции stop и report .
-
--user=user_name
Имя пользователя MySQL, чтобы использовать, вызывая
mysqladmin
.
-
--verbose
Больше подробностей о работе.
-
--version
Отобразить информацию о версии.
Некоторые примечания о
mysqld_multi:
ВАЖНО: Перед использованием
mysqld_multi
надо убедиться, что Вы понимаете значения опций, которые передают
mysqld
и почему Вы хотели бы иметь отдельные процессы
mysqld.
Остерегайтесь опасностей использовать многократные
mysqld
с тем же самым каталогом данных. Используйте отдельные каталоги данных, если
Вы не знаете, что Вы делаете. Запуск многократных
серверов с тем же самым каталогом данных не
дает Вам дополнительную скорость в многопоточной системе. См.
раздел 6.7. -
Удостоверьтесь, что каталог данных для каждого сервера полностью доступен
для учетной записи Unix, от которой запущен определенный процесс
mysqld.
Не используйте Unix root , если Вы
не знаете, что Вы делаете. См.
раздел 7.1.5.
Удостоверьтесь, что у учетной записи MySQL, используемой для того,
чтобы остановить mysqld
(с mysqladmin
) то же самое имя пользователя и пароль для каждого
сервера. Кроме того, удостоверьтесь, что учетная запись имеет
привилегию SHUTDOWN .
Если у серверов, которыми Вы хотите управлять, есть различные имена
пользователя или пароли для административных учетных записей, Вы могли бы
хотеть создать учетную запись на каждом сервере, у которой есть то же самое
имя пользователя и пароль. Например, Вы могли бы настроить общую учетку
multi_admin , выполняя следующие команды для каждого сервера:
shell> mysql -u root -S /tmp/mysql.sock -p
Enter password:
mysql> CREATE USER 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
mysql> GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost';
См. раздел 7.2.
Вы должны сделать это для каждого
mysqld.
Измените параметры соединения соответственно, соединяясь с каждым. Отметьте,
что часть имени хоста имени учетной записи должна разрешить Вам соединяться
как multi_admin с хоста, где Вы хотите выполнить
mysqld_multi
.
- Файл сокета Unix и номер порта TCP/IP должны отличаться для каждого
mysqld.
Альтернативно, если у хоста есть многократные сетевые адреса, Вы можете
использовать
--bind-address , чтобы заставить различные серверы
слушать различные интерфейсы.
--pid-file
очень важна, если Вы используете
mysqld_safe
, чтобы запустить mysqld
(например,
--mysqld=mysqld_safe
). У каждого mysqld
должен быть свой собственный файл ID процесса.
Преимущество использования
mysqld_safe вместо
mysqld
состоит в том, что
mysqld_safe контролирует свой процесс
mysqld
и перезапускает это, если процесс заканчивается из-за сигнала, посланного,
используя kill -9 или по другим причинам, таким как ошибка
сегментации. Пожалуйста, отметьте, что скрипт
mysqld_safe
мог бы потребовать, чтобы Вы запустили его с определенного места. Это
означает, что Вам, возможно, придется изменить местоположение на определенный
каталог прежде, чем выполнить
mysqld_multi. Если у Вас есть проблемы с
запуском, пожалуйста, см. скрипт
mysqld_safe. Проверьте особенно строки:
----------------------------------------------------------------
MY_PWD=`pwd`
# Check if we are starting this relative (for the binary release)
if test -d $MY_PWD/data/mysql -a \
-f ./share/mysql/english/errmsg.sys -a \
-x ./bin/mysqld
----------------------------------------------------------------
Тест, выполненный этими строками, должен быть успешным, или Вы могли бы
столкнуться с проблемами. См. раздел 5.3.2
.
- Вы могли бы хотеть использовать опцию
--user для
mysqld,
но чтобы сделать это Вы должны выполнить
mysqld_multi
как Unix root . Наличие опции в файле опции не имеет
значения; Вы только получаете предупреждение, если Вы не суперпользователь, и
процессы mysqld
будут запущены в соответствии с Вашей собственной учетной записью Unix.
Следующий пример показывает, как Вы могли бы настроить файл опции для
использования с
mysqld_multi. Порядок, в котором
mysqld
запущены или остановлены, зависит от порядка, в котором они появляются в
файле опции. Групповые числа не обязаны сформировать непрерывную
последовательность. Первая и пятая группы
[mysqldN ] были преднамеренно опущены в
примере, чтобы иллюстрировать, что у Вас может быть промежуток
в файле опции. Это дает Вам больше гибкости.
# This is an example of a my.cnf file for mysqld_multi.
# Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = multi_admin
password = my_password
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /usr/local/mysql/data2/hostname.pid2
datadir= /usr/local/mysql/data2
language = /usr/local/mysql/share/mysql/english
user = unix_user1
[mysqld3]
mysqld = /path/to/mysqld_safe
ledir= /path/to/mysqld-binary/
mysqladmin = /path/to/mysqladmin
socket = /tmp/mysql.sock3
port = 3308
pid-file = /usr/local/mysql/data3/hostname.pid3
datadir= /usr/local/mysql/data3
language = /usr/local/mysql/share/mysql/swedish
user = unix_user2
[mysqld4]
socket = /tmp/mysql.sock4
port = 3309
pid-file = /usr/local/mysql/data4/hostname.pid4
datadir= /usr/local/mysql/data4
language = /usr/local/mysql/share/mysql/estonia
user = unix_user3
[mysqld6]
socket = /tmp/mysql.sock6
port = 3311
pid-file = /usr/local/mysql/data6/hostname.pid6
datadir= /usr/local/mysql/data6
language = /usr/local/mysql/share/mysql/japanese
user = unix_user4
См. раздел 5.2.6.
5.4.
Связанные с установкой программы MySQL
Программы в этом разделе используются, устанавливая или обновляя MySQL.
5.4.1. comp_err
Компиляция файла сообщений об ошибке MySQL
comp_err
создает файл errmsg.sys , который используется
mysqld,
чтобы определить сообщения об ошибках, чтобы вывести на экран для различных
кодов ошибки. comp_err
обычно выполняется автоматически, когда MySQL создан. Это
собирает файл errmsg.sys из текстового файла
sql/share/errmsg-utf8.txt , расположенного в
исходных текстах MySQL.
comp_err
также производит заголовочные файлы mysqld_error.h ,
mysqld_ername.h и sql_state.h .
Для получения дополнительной информации о том, как сообщения об ошибках
определены, см. MySQL Internals Manual.
Вызов comp_err
:
shell> comp_err [options ]
comp_err
поддерживает следующие опции.
--help ,
-?
Вывести на экран сообщение справки и выйти.
-
--charset=dir_name ,
-C dir_name
Каталог набора символов. Значение по умолчанию
../sql/share/charsets .
-
--debug=debug_options ,
-# debug_options
Писать журнал отладки. Типичная строка
debug_options :
d:t:O,file_name . По умолчанию
d:t:O,/tmp/comp_err.trace .
-
--debug-info
, -T
Напечатать некоторую информацию об отладке, когда программа выходит.
-
--header_file=file_name ,
-H file_name
Название заголовочного файла ошибок. Значение по умолчанию
mysqld_error.h .
-
--in_file=file_name ,
-F file_name
Название входного файла. Значение по умолчанию
../sql/share/errmsg-utf8.txt .
-
--name_file=file_name ,
-N file_name
Название файла имен ошибок. Значение по умолчанию
mysqld_ername.h .
-
--out_dir=dir_name ,
-D dir_name
Название базового каталога вывода. Значение по умолчанию
../sql/share/ .
-
--out_file=file_name ,
-O file_name
Название выходного файла. Значение по умолчанию errmsg.sys .
-
--statefile=
file_name ,
-S file_name
Название заголовочного файла SQLSTATE. Значение по умолчанию
sql_state.h .
-
--version ,
-V
Информация о версии и выход.
5.4.2.
mysql_secure_installation
улучшение безопасности установки MySQL
Эта программа позволяет Вам улучшить безопасность своей установки
MySQL следующими способами:
mysql_secure_installation помогает Вам осуществить
рекомендации безопасности, подобные описанным в
разделе 2.9.4.
Нормальное использование должно соединиться с местным сервером MySQL,
вызовите
mysql_secure_installation без параметров:
shell> mysql_secure_installation
Когда выполнен,
mysql_secure_installation
просит Вас определять, которые действия выполнить.
Плагин validate_password может использоваться для проверки
силы пароля. Если плагин не установлен,
mysql_secure_installation
запрашивает пользователя, установить ли это. Любые пароли будут позже
проверены, используя плагин, если он включен.
Большинство обычных опций клиента MySQL, например,
--host
и
--port может использоваться на командной строке и в файлах
опции. Например, чтобы соединиться с локальным сервером по IPv6, используя
порт 3307, используйте эту команду:
shell> mysql_secure_installation --host=::1 --port=3307
mysql_secure_installation поддерживает следующие опции,
которые могут быть определены в командной строке или в группах
[mysql_secure_installation] и [client]
файла опции. Для информации о файлах опции, используемых программами MySQL,
см. раздел 5.2.6.
Таблица 5.5. Опции
mysql_secure_installation
Формат | Описание
|
--defaults-extra-file | Читает данный файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только данный файл опций |
--defaults-group-suffix | Групповое значение суффикса опции
|
--help |
Отобразить справку и выйти |
--host |
IP-адрес или имя хоста для соединения |
--no-defaults | Не читать файлы опции |
--password
| Принят, но всегда проигнорирован. Всякий раз, когда
mysql_secure_installation вызван, пользователь запрошен о пароле независимо.
|
--port |
Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатать опции по умолчанию |
--protocol
| Протокол соединения, чтобы использовать |
--socket
| Для соединений с localhost файл сокета Unix |
--ssl-ca |
Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath
| Путь к каталогу, который содержит доверенные сертификаты SSL
CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM |
--ssl-cipher
| Список разрешенных шифров для шифрования соединения |
--ssl-crl
| Путь к файлу, который содержит списки аннулирования сертификатов
|
--ssl-crlpath
| Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key
| Путь к файлу, который содержит ключ X509 в формате PEM |
--tls-version | Протоколы, разрешенные для безопасных соединений
|
--use-default | Выполнить без пользовательской активности |
--user |
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером
|
--help
, -?
Отобразить справку и выйти.
-
--defaults-extra-file=file_name
Считайте этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysql_secure_installation обычно читает группы
[client] и [mysql_secure_installation] . Если опция
--defaults-group-suffix=_other дана,
mysql_secure_installation также читает группы
[client_other] и [mysql_secure_installation_other] .
-
--host=host_name ,
-h host_name
Соединитесь с сервером MySQL на данном хосте.
-
--no-defaults
Не читать файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла
--no-defaults может использоваться, чтобы препятствовать тому,
чтобы они были считаны.
Исключение: файл .mylogin.cnf , если это существует, считан во
всех случаях. Это разрешает паролям быть определенными более безопасным
способом, чем в командной строке, даже когда применяется
--no-defaults . Файл .mylogin.cnf создается
mysql_config_editor, см.
раздел 5.6.7.
-
--password=password ,
-p password
Эта опция принята, но проигнорирована. Используется ли эта опция
или нет,
mysql_secure_installation
всегда запрашивает у пользователя пароль.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Напечатать название программы и все опции, которые она получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения обычно использовали бы
не тот протокол. Для деталей о допустимых значениях см.
раздел 5.2.2.
-
--socket=path ,
-S path
Для соединений с localhost файл сокета Unix, чтобы
использовать, или в Windows имя именованного канала
-
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL и указывают, где найти
ключи и сертификаты SSL, см.
раздел 7.4.5.
-
--tls-version=protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений. Значение
это список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы в этой опции, зависят от
библиотеки SSL, использовавшейся, чтобы собрать MySQL. Для деталей см.
раздел 7.4.3
.
-
--use-default
Выполнить не в интерактивном режиме. Эта опция может использоваться для
необслуживаемых операций установки.
-
--user=user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
5.4.3.
mysql_ssl_rsa_setup создание файлов SSL/RSA
Эта программа создает сертификат SSL и ключевые файлы, а также файлы
ключевой пары RSA, требуемые, чтобы поддерживать безопасные соединения,
используя SSL и безопасный обмен паролями, использующий RSA по
незашифрованным соединениям, если эти файлы отсутствуют.
mysql_ssl_rsa_setup может также использоваться, чтобы
создать новые файлы SSL, если существующие истекли.
mysql_ssl_rsa_setup использует
openssl, таким образом, ее использование
зависит от наличия OpenSSL на Вашей машине.
Другой способ произвести SSL и файлы RSA для дистрибутивов MySQL,
собранных, используя OpenSSL, состоит в том, чтобы сервер произвел их
автоматически. См.
раздел 7.4.6.1.
mysql_ssl_rsa_setup помогает понизить барьер для
использования SSL, облегчая производство необходимых файлов. Однако,
сертификаты, произведенные
mysql_ssl_rsa_setup самоподписаны, не очень
безопасны. После того, как Вы приобретете опыт, используя файлы, создаваемые
mysql_ssl_rsa_setup
, рассмотрите получение сертификата CA
из зарегистрированного центра сертификации.
Вызов
mysql_ssl_rsa_setup:
shell> mysql_ssl_rsa_setup [options ]
Опция
--datadir определяет, где создать файлы, а
--verbose
показывает команды openssl, которые
выполняет
mysql_ssl_rsa_setup.
mysql_ssl_rsa_setup
пытается создать SSL и файлы RSA, используя набор имен файлов по умолчанию.
Это работает следующим образом:
mysql_ssl_rsa_setup
проверяет наличие
openssl в местоположениях, определенных
переменной окружения PATH . Если
openssl там нет,
mysql_ssl_rsa_setup
ничего не делает. Если
openssl есть,
mysql_ssl_rsa_setup
ищет значение по умолчанию SSL и файлы RSA в каталоге
данных MySQL, определенном опцией
--datadir
или в каталоге данных, если эта опция не дана.
-
mysql_ssl_rsa_setup проверяет каталог данных на файлы SSL
со следующими именами:
ca.pem
server-cert.pem
server-key.pem
- Если какой-либо из тех файлов присутствует,
mysql_ssl_rsa_setup
не создает файлов SSL. Иначе, это вызывает
openssl, чтобы создать их и
некоторые дополнительные файлы:
ca.pem Self-signed CA certificate
ca-key.pem CA private key
server-cert.pem Server certificate
server-key.pem Server private key
client-cert.pem Client certificate
client-key.pem Client private key
Эти файлы включают безопасные соединения клиента, используя SSL, см.
раздел 7.4.4.
-
mysql_ssl_rsa_setup
проверяет каталог данных на файлы RSA со следующими именами:
private_key.pem Private member of private/public key pair
public_key.pem Public member of private/public key pair
- Если какой-либо из этих файлов присутствует,
mysql_ssl_rsa_setup не создает файлов RSA. Иначе, это
вызывает openssl, чтобы создать их. Эти файлы
включают безопасный обмен паролями, использующий RSA по незашифрованным
соединениям для учетных записей, заверенных плагином
sha256_password , см.
раздел 7.5.1.2.
Для информации о характеристиках файлов, создаваемых
mysql_ssl_rsa_setup
см.
раздел 7.4.6.1.
При запуске сервер MySQL автоматически использует файлы SSL, создаваемые
mysql_ssl_rsa_setup
, чтобы включить SSL, если не задано никаких явных опций
SSL, кроме --ssl .
Если Вы предпочитаете определять файлы явно, используйте опции
--ssl-ca ,
--ssl-cert и
--ssl-key
при запуске, чтобы назвать файлы ca.pem ,
server-cert.pem и server-key.pem , соответственно.
Сервер также автоматически использует файлы RSA, создаваемые
mysql_ssl_rsa_setup
, чтобы включить RSA, если никакие явные опции
RSA не даны.
Если сервер SSL включен, клиенты используют SSL по умолчанию для
соединения. Чтобы определить сертификат и ключевые файлы явно, используйте
опции --ssl-ca ,
--ssl-cert и
--ssl-key ,
чтобы назвать файлы ca.pem , client-cert.pem и
client-key.pem , соответственно. Однако, некоторая дополнительная
установка клиента может требоваться сначала, потому что
mysql_ssl_rsa_setup
по умолчанию создает те файлы в каталоге данных.
Разрешения для каталога данных обычно включают доступу только к системной
учетной записи, которая выполняет сервер MySQL, таким образом, программы
клиента не могут использовать файлы, расположенные там.
Чтобы сделать файлы доступными, скопируйте их в каталог, который читаемый (но
не перезаписываемый) клиентами:
Для местных клиентов может использоваться каталог установки MySQL.
Например, если каталог данных это подкаталог каталога установки, и Ваше
текущее местоположение это каталог данных, Вы можете скопировать файлы:
shell> cp ca.pem client-cert.pem client-key.pem ..
- Для удаленных клиентов распределите файлы, используя безопасный канал,
чтобы гарантировать, что в них не вмешиваются во время транзита.
Если файлы SSL, используемые для установки MySQL, истекли, Вы можете
использовать
mysql_ssl_rsa_setup, чтобы создать новые:
Остановите сервер.
- Переименуйте или удалите существующие файлы SSL. Вы можете хотеть сделать
резервное копирование сначала. айлы RSA не истекают, таким образом, Вы не
должны удалить их.
mysql_ssl_rsa_setup будет видеть, что они существуют и
не перезаписывает их.
- Запустите
mysql_ssl_rsa_setup с опцией
--datadir
, чтобы определить, где создать новые файлы.
- Перезапустите сервер.
mysql_ssl_rsa_setup поддерживает следующие параметры,
которые могут быть определены в командной строке или в группах
[mysql_ssl_rsa_setup] и [mysqld]
файла опции. Для информации о файлах опции, используемых программами MySQL,
см. раздел 5.2.6.
Таблица 5.6. Опции
mysql_ssl_rsa_setup
Формат | Описание
|
--datadir |
Путь к каталогу данных |
--help | Отобразить справку и выйти |
--suffix | Суффикс для признака общего названия сертификата X509
|
--uid | Имя эффективного пользователя, чтобы использовать
для разрешений файла |
--verbose | Подробный режим |
--version | Информация о версии и выход |
--help
, ?
Отобразить справку и выйти
-
--datadir=dir_name
Путь к каталогу, где
mysql_ssl_rsa_setup
должен искать файлы SSL и RSA и в котором это должно
создать файлы, если они отсутствуют. Значение по умолчанию в каталоге данных.
-
--suffix=str
Суффикс для общего названия в сертификатах X509.
Значение суффикса ограничено 17 символами. Значение по умолчанию основано на
номере версии MySQL.
-
--uid=name , -v
Имя пользователя, который должен быть владельцем любых создаваемых файлов.
Значение имя пользователя, не числовой пользовательский идентификатор.
В отсутствие этой опции файлы, создаваемые
mysql_ssl_rsa_setup
, принадлежат пользователю, который выполняет ее. Эта
опция допустима, только если Вы выполняете программу как
root на системе, которая поддерживает
системный вызов chown() .
-
--verbose , -v
Многословный режим. Произведет подробный вывод о том, что делает
программа. Например, программа показывает команды
openssl, которые она выполняет, и производит
вывод, чтобы указать, пропускает ли она создание файла SSL или RSA, потому
что некоторый файл уже существует.
-
--version , -V
Отобразить информацию о версии.
5.4.4.
mysql_tzinfo_to_sql
Загрузка таблицы часового пояса
mysql_tzinfo_to_sql
загружает таблицы часового пояса в базу данных mysql .
Это используется на системах, у которых есть база данных
zoneinfo (набор файлов, описывающих часовые
пояса). Примеры таких систем: Linux, FreeBSD, Solaris и OS X.
Одно вероятное местоположение для этих файлов: каталог
/usr/share/zoneinfo
(/usr/share/lib/zoneinfo в Solaris).
Если у Вашей системы нет базы данных zoneinfo, Вы можете использовать
загружаемый пакет, описанный в
разделе 11.6.
mysql_tzinfo_to_sql
может быть вызвана несколькими путями:
shell> mysql_tzinfo_to_sql tz_dir
shell> mysql_tzinfo_to_sql tz_file tz_name
shell> mysql_tzinfo_to_sql --leap tz_file
яДля первого синтаксиса передайте zoneinfo имя пути к каталогу к
mysql_tzinfo_to_sql и пошлите вывод в
mysql:
shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
mysql_tzinfo_to_sql
читает файлы часового пояса Вашей системы и производит
запросы SQL от них. mysql
обрабатывает эти запросы, чтобы загрузить таблицы часового пояса.
Второй синтаксис заставляет
mysql_tzinfo_to_sql
загружать единственный файл часового пояса tz_file ,
который соответствует имени часового пояса tz_name :
shell> mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql
Если Ваш часовой пояс должен учитывать секунды сдвига, запустите
mysql_tzinfo_to_sql
, используя третий синтаксис, который инициализирует
информацию сдвига секунд. tz_file это
название Вашего файла часового пояса:
shell> mysql_tzinfo_to_sql --leap tz_file | mysql -u root mysql
После выполнения
mysql_tzinfo_to_sql лучше перезапускать сервер, чтобы это
не продолжило использовать любые ранее кэшируемые данные о часовом поясе.
5.4.5. mysql_upgrade
проверка и обновление таблицы MySQL
mysql_upgrade
исследует все таблицы во всех базах данных для несовместимостей с
текущей версией MySQL Server.
mysql_upgrade также обновляет системные таблицы
так, чтобы Вы могли использовать в своих интересах новые привилегии или
способности, которые, возможно, были добавлены.
Если mysql_upgrade
находит, что у таблицы есть возможная несовместимость,
это выполняет проверку и, если проблемы найдены, делает попытку ремонта
таблицы. Если таблица не может быть восстановлена, см.
раздел 2.10.4
для ручных стратегий ремонта таблицы.
Вы должны выполнить
mysql_upgrade каждый раз, когда Вы обновляете MySQL.
mysql_upgrade
общается непосредственно с сервером MySQL, посылая запросы SQL,
требуемые, чтобы выполнить обновление.
В Windows Server 2008, Vista и новее Вы должны выполнить
mysql_upgrade
как администратор системы. Вы можете сделать это, выполняя
командную строку как Администратор и выполняя команду.
Вы должны всегда резервировать свою текущую установку MySQL
прежде, чем выполнить обновление. См.
раздел 8.2.
Некоторые несовместимости обновления могут потребовать специальной
обработки прежде, чем Вы обновите свою установку MySQL и выполните
mysql_upgrade
. См. раздел 2.10.1.
Чтобы использовать
mysql_upgrade, удостоверьтесь, что сервер работает. Тогда
вызовите это, чтобы проверить и восстановить таблицы и
обновить системные таблицы:
shell> mysql_upgrade [options ]
После выполнения
mysql_upgrade, остановите сервер и перезапустите его,
чтобы любые изменения, произведенные в системных таблицах, вступили в силу.
Если у Вас есть многократное выполнение серверов MySQL, вызовите
mysql_upgrade
с параметрами соединения, подходящими для соединения с желаемым
сервером. Например, с серверами, работающими на местном узле на портах
3306-3308, обновите каждый из них, соединяясь с соответствующим портом:
shell> mysql_upgrade --protocol=tcp -P 3306 [other_options ]
shell> mysql_upgrade --protocol=tcp -P 3307 [other_options ]
shell> mysql_upgrade --protocol=tcp -P 3308 [other_options ]
Для местных соединений в Unix опция
--protocol=tcp
вызывает соединение, используя TCP/IP, а не файл сокета Unix.
mysql_upgrade
обрабатывает все таблицы во всех базах данных, это могло бы
занять много времени. Каждая таблица заблокирована и поэтому недоступна
другим сеансам, в то время как она обрабатывается. Проверка и восстановление
могут быть отнимающими много времени, особенно для больших таблиц.
Для деталей о том, что влекут за собой проверяющие таблицу операции см.
описание опции FOR UPGRADE команды
CHECK TABLE
(раздел 14.7.2.2).
Все проверенные и восстановленные таблицы отмечены с текущим номером
версии MySQL. Это гарантирует, что когда Вы в следующий раз выполняете
mysql_upgrade
с той же самой версией сервера, это может сказать, есть ли
какая-либо потребность проверить или восстановить таблицу снова.
mysql_upgrade
также сохраняет номер версии MySQL в файле
mysql_upgrade_info в каталоге данных. Это используется, чтобы
быстро проверить, были ли все таблицы проверены на этот выпуск так, чтобы
проверка таблицы могла быть пропущена. Чтобы проигнорировать этот файл и
выполнить проверку независимо, используйте опцию
--force .
mysql_upgrade
проверяет строки таблицы user
и, для любой строки с пустым столбцом plugin ,
устанавливает этот столбец в 'mysql_native_password' , если
привилегии используют формат хеша, совместимый с этим плагином. Строки с
паролями в хэше версии pre-4.1 должны быть обновлены вручную.
mysql_upgrade
не обновляет содержание таблиц справки. Для инструкций обновления
см. раздел 6.1.10.
Если не вызвано с опцией
--skip-sys-schema ,
mysql_upgrade
устанавливает схему sys , если это не установлено, и
обновляет это до текущей версии иначе.
mysql_upgrade
возвращает ошибку, если схема sys
существует, но не имеет представления version ,
при условии, что его отсутствие указывает на создаваемую пользователем схему:
Error occurred: A sys schema exists with no sys.version view. If
you have a user created sys schema, this must be renamed for the
upgrade to succeed.
Чтобы обновиться в этом случае, сначала удалите или переименуйте
существующую схему sys .
mysql_upgrade
проверяет на разделение таблицы InnoDB , которые были
составлены, используя родной обработчик разделения и пытается обновить их до
родного разделения InnoDB . Вы можете обновить такие таблицы
индивидуально в mysql
, используя ALTER
TABLE ... UPGRADE PARTITIONING .
По умолчанию
mysql_upgrade работает как MySQL-пользователь
root . Если истек пароль для root , когда Вы
выполняете mysql_upgrade
, Вы будете видеть сообщение, что Ваш пароль истекает и
что mysql_upgrade
потерпел неудачу в результате. Чтобы исправить это, сбросьте
пароль root в неистекающий и выполните
mysql_upgrade
снова. Соединитесь с сервером как root :
shell> mysql -u root -p
Enter password: <**** <- enter root password here
Сбросьте пароль ALTER USER :
mysql> ALTER USER USER() IDENTIFIED BY 'root-password ';
Теперь выйдите из mysql
и выполните
mysql_upgrade снова:
shell> mysql_upgrade [options ]
mysql_upgrade
поддерживает следующие опции, которые могут быть определены в
командной строке или в группах [mysql_upgrade] и
[client] файла опции. Для информации о файлах опции,
используемых программами MySQL, см.
раздел 5.2.6.
Таблица 5.7. Опции
mysql_upgrade
Формат | Описание
|
--bind-address | Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--character-sets-dir | Каталог, где наборы символов установлены
|
--compress | Сжимать всю информацию, посланную
между клиентом и сервером |
--debug
| Вести журнал отладки |
--debug-check | Информация об отладке, когда программа завершается
|
--debug-info | Информация об отладке, память и статистика
центрального процессора, когда программа завершается |
--default-auth | Плагин аутентификации, чтобы использовать
|
--default-character-set | Определите набор символов
значения по умолчанию |
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--force
| Выполнение, даже если mysql_upgrade был уже выполнен для
текущей версии MySQL |
--help
| Отобразить справку и выйти |
--host
| Хост сервера MySQL |
--login-path | Читать опции пути входа в систему из .mylogin.cnf
|
--max-allowed-packet | Максимальная пакетная длина, чтобы послать в
или получить от сервера |
--net-buffer-length | Размер буфера для TCP/IP и сокета |
--no-defaults | Не читать файлы опции |
--password | Пароль, чтобы соединиться с сервером |
--pipe
| В Windows соединиться с сервером, используя именованный канал
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатать опции по умолчанию |
--protocol | Протокол соединения, чтобы использовать |
--shared-memory-base-name | Название совместно используемой памяти, чтобы
использовать для соединений |
--skip-sys-schema | Не устанавливать или обновлять схему sys
|
--socket | Для соединений с localhost файл сокета Unix |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath | Путь к каталогу, который содержит доверенные
сертификаты SSL CA в формате PEM |
--ssl-cert | Путь к файлу, который содержит
сертификат X509 в формате PEM |
--ssl-cipher | Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl | Путь к файлу, который содержит
списки аннулирования сертификатов |
--ssl-crlpath | Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key | Путь к файлу, который содержит ключ X509 в формате PEM
|
--ssl-mode | Статус безопасности соединения с сервером |
--tls-version | Протоколы, разрешенные для безопасных соединений
|
--upgrade-system-tables | Обновите только системные таблицы,
но не данные |
--user
| Имя пользователя MySQL, чтобы
использовать, соединяясь с сервером |
--verbose | Подробный отчет |
--version-check | Проверить на надлежащую версию сервера |
--write-binlog | Записать все запросы в двоичный журнал
|
--help
Отобразить справку и выйти.
-
--basedir=dir_name
Путь к каталогу установки MySQL.
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--compress
, -C
Сжимать всю информацию, посланную между клиентом и сервером,
если оба поддерживают сжатие.
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать протокол отладки. Типичная строка
debug_options :
d:t:o,file_name .
Значение по умолчанию d:t:O,/tmp/mysql_upgrade.trace .
-
--debug-check
Напечатать некоторую информацию об отладке, когда программа выходит.
-
--debug-info
, -T
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
раздел 7.3.9.
-
--default-character-set=charset_name
Использовать charset_name
как набор символов значения по умолчанию. См.
раздел 11.5.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix) перед
пользовательским файлом опции. Если файл не существует или иначе недоступен,
ошибка происходит. file_name интерпретируется
относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysql_upgrade
обычно читает группы [client] и
[mysql_upgrade] . Если дана
--defaults-group-suffix=_other ,
mysql_upgrade
также читает группы [client_other] и
[mysql_upgrade_other] .
-
--force
Проигнорировать файл mysql_upgrade_info и выполнить
mysql_upgrade
, даже если уже был выполнен для текущей версии MySQL.
-
--host=host_name ,
-h host_name
Соединитесь с сервером MySQL на данном хосте.
-
--login-path=name
Читать опции из названного пути входа в систему в файле
.mylogin.cnf . Вход в систему
является группой опций, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см.
раздел 5.6.7.
-
--max-allowed-packet=value
Максимальный размер буфера для коммуникации клиент-сервер. Значение по
умолчанию составляет 24 МБ. Минимальные и максимальные значения
составляют 4 КБ и 2GB.
-
--net-buffer-length=value
Начальный размер буфера для коммуникации клиент-сервер.
Значение по умолчанию составляет 1 МБ-1KB.
Минимальные и максимальные значения составляют 4 КБ и 16 МБ.
-
--no-defaults
Не читать файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение: если существует .mylogin.cnf , то он
считан во всех случаях. Это разрешает паролям быть определенными более
безопасным способом, чем в командной строке, даже когда применена опция
--no-defaults
. Файл .mylogin.cnf создается с помощью
mysql_config_editor
, см. раздел
5.6.7.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), у Вас
не должно быть пробелов между опцией и паролем. Если
Вы опускаете значение password после
--password
или -p в командной строке,
mysql_upgrade
его спросит явно.
Определение пароля в командной строке нужно считать опасным, см.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--pipe ,
-W
В Windows соединиться с сервером, используя именованный канал.
Эта опция применяется, только если сервер поддерживает
соединения именованного канала.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
--default-auth используется, чтобы определить плагин
аутентификации, но
mysql_upgrade не находит это. См.
раздел 7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Напечатать название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения
0заставляли бы использоваться не тот протокол.
Для деталей о допустимых значениях см.
раздел 5.2.2.
-
--shared-memory-base-name=name
В Windows имя совместно используемой памяти
для соединений, сделанных, используя совместно используемую память для
локального сервера. Значение по умолчанию MYSQL .
Имя совместно используемой памяти является чувствительным к регистру.
Сервер должен быть запущен с опцией
--shared-memory
.
-
--skip-sys-schema
mysql_upgrade
устанавливает схему sys ,
если это не установлено, и обновляет до текущей версии иначе. Опция
--skip-sys-schema подавляет это поведение.
-
--socket=path ,
-S path
Для соединений с localhost файл сокета Unix, чтобы
использовать, или в Windows имя именованного канала, чтобы использовать.
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL и указывают, где найти
ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--tls-version=protocol_list
Протоколы разрешены клиентом для зашифрованных соединений. Значение это
список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--upgrade-system-tables , -s
Обновить только системные таблицы, но не данные.
-
--user=user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
Имя пользователя по умолчанию root .
-
--verbose
Подробный режим. Напечатать больше информации о том, что делает программа.
-
--version-check , -k
Проверить версию сервера, с которым
mysql_upgrade
соединяется, чтобы проверить, что это та же самая версия, для
которой был создан
mysql_upgrade. Если нет,
mysql_upgrade
завершается. Эта опция включена по умолчанию, чтобы отключить
проверку, надо использовать --skip-version-check .
-
--write-binlog
По умолчанию двоичное журналирование
mysql_upgrade
отключено. Вызовите программу с --write-binlog ,
если Вы хотите, чтобы действия были написаны в двоичный журнал.
Выполнение
mysql_upgrade не рекомендуется с MySQL Server, который
работает с включенными глобальными операционными идентификаторами (Bug
#13833710). Это потому, что включение GTID означает, что любые обновления,
которые mysql_upgrade
, возможно, должен был бы выполнить на системных
таблицах, используя нетранзакционный механизм хранения, такой как
MyISAM ,
потерпят неудачу. См.
раздел 19.1.3.4.
5.5. Программы клиента MySQL
Этот раздел описывает программы клиента, которые
соединяются с сервером MySQL.
5.5.1. Клиент mysql
mysql это
простая оболочка SQL с поддержкой редактирования строки. Это поддерживает
интерактивное и неинтерактивное использование. Когда используется в
интерактивном режиме, результаты запроса представлены в формате таблицы
ASCII. Когда используется не в интерактивном режиме (например, как фильтр),
результат представлен в отделенном табуляциями формате. Выходной формат может
быть изменен, используя опции команды.
Если у Вас есть проблемы из-за недостаточной памяти для больших наборов
результатов, используйте
--quick . Это вынуждает
mysql получить с сервера строку за один раз вместо того,
чтобы получить весь набор результатов и буферизовать это в памяти прежде, чем
вывести на экран. Это сделано, возвращая набор результатов, используя
mysql_use_result() C
API в библиотеке клиент-сервер, а не
mysql_store_result()
.
Альтернативно, MySQL Shell предлагает доступ к X DevAPI. Для деталей см.
раздел 3.8.
Использование mysql
очень легко. Вызовите это из подсказки Вашего интерпретатора
команды следующим образом:
shell> mysql db_name
Или:
shell> mysql --user=user_name --password=your_password db_name
Теперь введите запрос SQL, закончите его ; ,
\g или \G и нажмите Enter.
Ввод Control+C прерывает текущий
запрос, если он есть, или отменяет какую-либо частичную
входную строку иначе.
Вы можете выполнить запросы SQL в файле скрипта (пакетный файл):
shell> mysql db_name < script.sql > em>output.tab
В Unix mysql
регистрирует запросы, выполненные в интерактивном режиме, в файле истории.
См. раздел 5.5.1.3.
5.5.1.1. Опции mysql
mysql
понимает следующие опции, которые могут быть определены в командной строке
или в группах [mysql] и [client] файла опции. Для
информации о файлах опции, используемых программами MySQL, см.
раздел 5.2.6.
Таблица 5.8. Опции
mysql
Формат | Описание
|
--auto-rehash | Включить автоматическое рехэширование |
--auto-vertical-output | Включить автоматический вертикальный
вывод набора результатов |
--batch |
Не использовать файл истории |
--binary-mode | Выключить трансляцию \r\n - to - \n и
не рассматривать \0 как конец запроса |
--bind-address | Использовать определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--character-sets-dir | Каталог, где наборы символов установлены
|
--column-names | Писать имена столбцов в результатах |
--column-type-info | Выведить на экран
метаданные о наборе результатов |
--comments
| Сохранить или убрать комментарии в запросах, посланных серверу
|
--compress
| Сжать всю информацию, посланную между клиентом и сервером
|
--connect-expired-password | Указать серверу, что клиент может
обработать режим песочницы для пароля с истекшим сроком |
--connect_timeout | Число секунд перед тайм-аутом соединения
|
--database
| База данных, чтобы использовать |
--debug
| Писать журнал отладки, поддержано только если MySQL был
создан с поддержкой отладки |
--debug-check | Информация об отладке,
когда программа завершена |
--debug-info | >Информация об отладке, памяти и статистика
центрального процессора, когда программа завершена |
--default-auth | Плагин аутентификации, чтобы использовать
|
--default-character-set | Определить набор символов по умолчанию
|
--defaults-extra-file | Читать этот файл опций в дополнение к
обычным файлам опций |
--defaults-file | Читать только этот файл опций |
--defaults-group-suffix | Групповое значение суффикса опции
|
--delimiter
| Установить разделитель запросов |
--enable-cleartext-plugin |
Включить плагин аутентификации открытого текста |
--execute
| Выполнить запрос и выйти |
--force
| Продолжить, даже если ошибка SQL происходит |
--help |
Отобразить справку и выйти |
--histignore | Образцы, определяющие, которые запросы
проигнорировать для регистрации |
--host |
Соединиться с сервером MySQL на данном хосте |
--html |
Вывод в формате HTML |
--ignore-spaces | Проигнорировать пробелы после имен функций
|
--init-command | Запрос SQL, чтобы выполнить после соединения
|
--line-numbers | Написать номера строки для ошибок |
--local-infile | Включить или отключить
LOCAL для LOAD DATA INFILE |
--login-path | Читать опции пути входа в систему из .mylogin.cnf
|
--max_allowed_packet | Максимальная пакетная длина, чтобы послать в
или получить от сервера |
--max_join_size | Автоматический предел для строк в соединении,
используя --safe-updates |
--named-commands | Включить названные команды mysql |
--net_buffer_length | Размер буфера для TCP/IP и сокета |
--no-auto-rehash | Выключить автоматическое рехэширование |
--no-beep
| Не сигналить, когда ошибки происходят |
--no-defaults | Не читать файлы опции |
--one-database | Проигнорировать запросы кроме тех, которые для
базы данных по умолчанию, названной в командной строке |
--pager
| Используйте данную команду для вывода запроса оповещения |
--password
| Пароль, чтобы использовать, соединяясь с сервером |
--pipe |
В Windows использовать именованный канал |
--plugin-dir | Каталог, где плагины установлены |
--port |
Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатайте опции по умолчанию |
--prompt
| Установить подсказку в указанный формат |
--protocol
| Протокол соединения, чтобы использовать |
--quick
| Не кэшируовать каждый результат запроса |
--raw |
Написать значения столбцов без преобразования escape |
--reconnect
| Если соединение с сервером потеряно, автоматически
попытаться повторно соединиться |
--i-am-a-dummy,
--safe-updates | Позволить только UPDATE и DELETE, которые
определяют значения ключа |
--secure-auth | Не посылать пароли серверу в
старом формате (pre-4.1) |
--select_limit | Автоматический предел для запросов SELECT,
используя --safe-updates |
--server-public-key-path | Путь к файлу, содержащему
открытый ключ RSA |
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений |
--show-warnings | Показать предупреждения после каждого
запроса, если есть |
--sigint-ignore | Проигнорировать сигналы SIGINT (как правило,
результат ввода Control+C) |
--silent
| Тихий режим вывода |
--skip-auto-rehash | Выключить автоматическое рехэширование |
--skip-column-names | Не писать имена столбцов в результатах
|
--skip-line-numbers | Пропустить номера строки для ошибок |
--skip-named-commands | Отключить названные команды mysql |
--skip-pager
| Отключить оповещение |
--skip-reconnect | Отключить пересоединение |
--socket
| Для соединений с localhost файл сокета Unix |
--ssl-ca |
Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath
| Путь к каталогу, который содержит довереннные сертификаты SSL
CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM
|
--ssl-cipher
| Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl
| Путь к файлу, который содержит списки аннулирования сертификатов
|
--ssl-crlpath
| Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key
| Путь к файлу, который содержит ключ X509 в формате PEM |
--ssl-mode
| Статус безопасности соединения с сервером |
--syslog
| Зарегистрировать интерактивные запросы в syslog |
--table
| Показать вывод в табличном формате |
--tee |
Добавить копию вывода к названному файлу |
--tls-version | Протоколы, разрешенные для безопасных соединений
|
--unbuffered | Сбросить буфер после каждого запроса |
--user |
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером
|
--verbose
| Подробный режим вывода |
--version
| Отобразить версию и выйти |
--vertical
| Запрос вывода строк вертикально (одна строка
на значение столбца) |
--wait |
Если соединение не может быть установлено, ждать и
повторить вместо прерывания |
--xml |
Вывод в формате XML |
--help ,
-?
Показать справку и выйти.
-
--auto-rehash
Включить автоматическое рехэширование. Эта опция по умолчанию включает
завершение имени базы данных, таблицы и столбца. Используйте
--disable-auto-rehash
, чтобы это включить. Это заставляет
mysql
запускаться быстрее, но Вы должны скомандовать
rehash или сокращенно \# , если Вы хотите
использовать завершение имени.
Чтобы завершить имя, введите первую часть и нажмите Tab.
Если имя однозначно, mysql
завершает его. Иначе, Вы можете нажать Tab
снова, чтобы видеть возможные имена, которые начинаются с того, что Вы до сих
пор вводили. Завершение не происходит, если нет никакой базы
данных по умолчанию.
Эта особенность требует клиента MySQL, который собран с библиотекой
readline. Как правило, библиотека
readline недоступна в Windows.
--auto-vertical-output
Заставить наборы результатов быть выведенными на экран вертикально, если
они слишком широки для текущего окна, и использовать нормальный табличный
формат иначе. Это относится к запросам, законченным
; or \G .
-
--batch ,
-B
Печать результатов с использованием табуляции
как разделителя столбца с каждой строкой на новой строке. С этой опцией
mysql
не использует файл истории.
Пакетный режим приводит к нетабличному выходному формату и выходу
специальных символов. Выход может быть отключен при использовании сырого
режима, см. опцию --raw
.
-
--binary-mode
Эта опция помогает, обрабатывая вывод
mysqlbinlog
, который может содержать значения
BLOB . По умолчанию
mysql
преобразует \r\n в запросе в виде строки к \n
и интерпретирует \0 как разделитель запросов.
--binary-mode
отключает обе опции. Это также отключает все команды
mysql, кроме
charset и delimiter в неинтерактивном режиме (для
ввода, переданного по каналу к
mysql или загруженному с
использованим команды source ).
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--column-names
Писать имена столбцов в результатах.
-
--column-type-info
Вывести на экран метаданные о наборе результатов.
-
--comments ,
-c
Сохранить ли комментарии в запросах, посланных серверу.
Значение по умолчанию: комментарии пропускать.
-
--compress ,
-C
Сжать всю информацию, посланную между клиентом и сервером, если
оба это допускают.
-
--connect-expired-password
Укажите к серверу, что клиент может обработать режим песочницы, если
учетная запись имеет пароль с истекшим сроком. Это может быть полезно для
неинтерактивных запросов, потому что обычно сервер разъединяет
неинтерактивных клиентов, которые пытаются соединиться с использованием
учетной записи с паролем с истекшим сроком. См.
раздел 7.3.8.
-
--database=db_name ,
-D db_name
База данных, чтобы использовать. Это полезно прежде всего в файле опции.
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка
debug_options :
d:t:o,file_name .
Значение по умолчанию d:t:o,/tmp/mysql.trace .
Эта опция доступна, только если MySQL был создан, используя
WITH_DEBUG .
Релизы MySQL, обеспеченные Oracle, не
созданы, используя эту опцию.
-
--debug-check
Напечатать некоторую информацию об отладке, когда программа выходит.
-
--debug-info ,
-T
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
раздел 7.3.9.
-
--default-character-set=charset_name
Использовать charset_name как набор символов
значения по умолчанию для клиента и соединения.
Эта опция может быть полезной, если операционная система использует один
набор символов, а mysql
по умолчанию использует другой. В этом случае вывод может быть
отформатирован неправильно. Вы можете обычно решать такие проблемы при
использовании этой опции, чтобы вынудить клиента использовать системный набор
символов вместо своего.
См. разделы 11.1.4 и
11.5.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-file=file_name
Использовать только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
Исключение: Даже с
--defaults-file
программы клиента читают .mylogin.cnf .
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysql
обычно читает группы [client] и [mysql] .
Если опция
--defaults-group-suffix=_other задана,
mysql также
читает группы [client_other] и [mysql_other] .
-
--delimiter=str
Установить разделитель запросов. Значение по умолчанию:
символ точки с запятой (; ).
-
--disable-named-commands
Отключить названные команды. Используйте только форму \*
или используйте названные команды только в начале строки, заканчивающейся
точкой с запятой (; ).
mysql
запускается с этой опции, включенной по умолчанию.
Однако, даже с этой опцией, команды длинного формата все еще работают от
первой строки. См. раздел 5.5.1.2.
-
--enable-cleartext-plugin
Включить плагин аутентификации открытого текста
mysql_clear_password , см.
раздел 7.5.1.4.
-
--execute=statement ,
-e statement
Выполнить запрос и выйти. Выходной формат значения по умолчанию подобен
выводу --batch .
См. раздел 5.2.4
для некоторых примеров. С этой опцией
mysql не использует файл истории.
-
--force ,
-f
Продолжить, даже если ошибка SQL происходит.
-
--histignore
Отделенный двоеточиями список из одного или более образцов, определяющих
запросы, чтобы проигнорировать при протоколировании.
Эти образцы добавлены к списку образцов по умолчанию
("*IDENTIFIED*:*PASSWORD*" ).
Значение, определенное для этого журналирования, влияет на
опции запросов, написанных файлу истории, и syslog , если опция
--syslog
задана. См. раздел 5.5.1.3.
-
--host=host_name ,
-h host_name
Соединитесь с сервером MySQL на данном хосте.
-
--html ,
-H
Вывод в формате HTML.
-
--ignore-spaces
, -i
Проигнорировать пробелы после имен функций. Эффект этого описан в
обсуждении режима SQL
IGNORE_SPACE (см. раздел 6.1.8).
-
--init-command=str
Запрос SQL, чтобы выполнить после соединения с сервером.
Если автопересоединение включено, запрос выполнен снова после того,
как пересоединение происходит.
-
--line-numbers
Написать номера строки для ошибок. Отключите это с
--skip-line-numbers .
-
--local-infile[={0|1}]
Включить или отключить LOCAL для
LOAD DATA INFILE .
Без значения опция включает LOCAL . Опция может быть дана как
--local-infile=0
или
--local-infile=1 , чтобы явно отключить или включить
LOCAL . Включение LOCAL не имеет никакого эффекта,
если сервер также не поддерживает это.
-
--login-path=name
Читать опции из названного пути входа в систему в
.mylogin.cnf . Вход в систему
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см.
раздел 5.6.7.
-
--named-commands , -G
Разрешить названные команды
mysql. Команды длинного формата разрешены, не только
команды короткого формата. Например, quit и \q
обе признаны. Используйте
--skip-named-commands , чтобы отключить названные команды, см.
раздел 5.5.1.2.
-
--no-auto-rehash
, -A
Это имеет тот же самый эффект, как --skip-auto-rehash . См.
--auto-rehash
.
-
--no-beep ,
-b
Не пищать при любой ошибке.
-
--no-defaults
Не читать файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы они были считаны.
Исключение: если есть файл .mylogin.cnf ,
считан во всех случаях. Это разрешает паролям быть определенными более
безопасным способом, чем в командной строке даже когда использована опция
--no-defaults
(.mylogin.cnf создается
mysql_config_editor
, см.
раздел 5.6.7).
-
--one-database , -o
Проигнорировать запросы кроме тех, которые происходят в то время, как база
данных по умолчанию та, которая названа в командной строке.
Эта опция является старой и должна использоваться осторожно.
Фильтрация запросов базируется только на
USE .
Первоначально mysql
выполняет запросы во вводе потому, что определение базы данных
db_name в командной строке эквивалентно вставке
USE db_name
в начале ввода. Тогда для каждого
USE , с которым сталкиваются,
mysql
принимает или отклоняет следующие запросы в зависимости от того, является ли
база данных названной в командной строке.
Контент запросов является несущественным.
Предположите, что mysql
вызван, чтобы обработать этот набор запросов:
DELETE FROM db2.t2;
USE db2;
DROP TABLE db1.t1;
CREATE TABLE db1.t1 (i INT);
USE db1;
INSERT INTO t1 (i) VALUES(1);
CREATE TABLE db2.t1 (j INT);
Если командная строка mysql
--force --one-database db1,
mysql обрабатывает ввод следующим образом:
DELETE выполнено, потому
что база данных значения по умолчанию db1 , даже при том, что
запрос называет таблицу в иной базе данных.
DROP TABLE и
CREATE TABLE
не выполнены, потому что база данных по умолчанию не db1 ,
даже при том, что запросы называют таблицу в db1 .
INSERT и
CREATE TABLE
выполнены, потому что база данных по умолчанию db1 ,
даже при том, что CREATE TABLE
называет таблицу в иной базе данных.
--pager[=command ]
Используйте данную команду для вывода запроса оповещения.
Если команда опущена, значение по умолчанию это значение Вашей
переменной окружения PAGER . Допустимые варианты:
less, more,
cat [> filename] и т.п.
Эта опция работает только в Unix и только в интерактивном режиме. Чтобы
отключить оповещение, надо использовать
--skip-pager .
Раздел 5.5.1.2
обсуждает выходное оповещение далее.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), у Вас не может
быть пробелов между опцией и паролем. Если Вы опускаете
password после
--password или
-p в командной строке,
mysql
запросит пароль явно.
Определение пароля в командной строке нужно считать опасным. См.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--pipe ,
-W
В Windows соединитесь с сервером, используя именованный канал.
Эта опция применяется, только если сервер поддерживает
соединения именованного канала.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
--default-auth
используется, чтобы определить плагин аутентификации, но
mysql
не находит это. См.
раздел 7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Напечатать название программы и все опции, которые это получает
от файлов опции.
-
--prompt=format_str
Установите подсказку в указанный формат. Значение по умолчанию
mysql> . Специальные последовательности, которые может
содержать подсказка, описаны в
раздел 5.5.1.2.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения обычно заставляли бы
использовать не тот протокол. Для деталей о допустимых значениях см.
раздел 5.2.2.
-
--quick ,
-q
Не кэшировать каждый результат запроса, печатать каждую строку, когда
это получено. Это может замедлить сервер, если вывод приостановлен. С этой
опцией mysql
не использует файл истории.
-
--raw ,
-r
Для табличного вывода рамка вокруг столбцов
позволяет одному значению столбца быть отличенным от другого.
Для нетабличного вывода (который произведен в пакетном режиме или когда опции
--batch или
--silent даны),
специальные символы оставляют в выводе, таким образом, они могут быть
идентифицированы легко. Новая строка, tab, NUL и
backslash записаны как \n , \t , \0 и
\\ . Опция --raw
отключает это экранирование символов.
Следующий пример демонстрирует табличный вывод против нетабличного и
использование сырого режима, чтобы отключить экранировку:
%
-
--reconnect
Если соединение с сервером потеряно, автоматически попытаться
повторно соединиться. Попытка предпринята каждый раз, когда соединение
потеряно. Чтобы подавить поведение пересоединения, надо использовать
--skip-reconnect
.
-
--safe-updates
, --i-am-a-dummy
, -U
Разрешить только те UPDATE и
DELETE , которые определяют, которые
строки изменить при использовании значений ключа. Если Вы установили эту
опцию в файле опции, Вы можете переопределить ее при использовании
--safe-updates
в командной строке. См. раздел
5.5.1.6.
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1).
Это блокирует соединения за исключением серверов, которые используют
более новый формат пароля.
Эта опция устарела и будет удалена. Это всегда включается и попытка
отключить это (
--skip-secure-auth ,
--secure-auth=0
) производит ошибку.
Пароли, которые используют хеширующий метод pre-4.1, менее безопасны, чем
пароли, которые используют новый метод хеширования пароля.
Пароли Pre-4.1 устарели, и поддержка их была удалена.
--server-public-key-path=file_name
Путь к файлу, содержащему серверный открытый ключ RSA. Файл должен быть в
формате PEM. Открытый ключ используется для шифрования RSA-пароля клиента для
соединений с сервером, сделанным, используя учетные записи, которые
подтверждают подлинность с плагином sha256_password .
Эта опция проигнорирована для учетных записей клиента, которые не
подтверждают подлинность этим плагином. Это также проигнорировано, если
шифрование пароля не необходимо, как имеет место, когда клиент соединяется с
сервером, используя соединение SSL.
Сервер посылает открытый ключ клиенту как необходимый, таким образом, не
надо использовать эту опцию для шифрования пароля RSA. Более эффективно
сделать так, потому что тогда сервер не должен послать ключ.
См. раздел 7.5.1.2
.
Эта опция доступна, только если MySQL был создан, используя OpenSSL.
-
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений, сделанных,
используя совместно используемую память для локального сервера. Значение по
умолчанию MYSQL . Имя совместно используемой памяти
является чувствительным к регистру.
Сервер должен быть запущен с опцией
--shared-memory
, чтобы включить соединения совместно используемой памяти.
-
--show-warnings
Предупреждения будут показаны после каждого запроса, если есть.
Эта опция относится к интерактивному и пакетному режимам.
-
--sigint-ignore
Игнорировать сигнал SIGINT (как правило, результат ввода
Control+C).
-
--silent ,
-s
Тихий режим. Произведет меньший вывод. Эта опция может быть дана
многократно, чтобы произвести всё меньше и меньше вывода.
Эта опция приводит к нетабличному выходному формату и экранировке
специальных символов. Экранировка может быть отключена при использовании
сырого режима, см. описание для опции
--raw .
-
--skip-column-names , -N
Не писать имена столбцов в результатах.
-
--skip-line-numbers , -L
Не писать номера строки для ошибок. Полезно, когда Вы хотите сравнить
файлы результата, которые включают сообщения об ошибках.
-
--socket=path
,
-S path
Для соединений с localhost файл сокета Unix, чтобы
использовать, или в Windows имя именованного канала.
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL и указывают, где найти
ключи SSL и сертификаты. См.
раздел 7.4.5.
-
--syslog ,
-j
Эта опция заставляет mysql
посылать интерактивные запросы системному средству
журналирования. В Unix это syslog , в Windows это журнал событий
Windows. Место назначения, где зарегистрированные сообщения появляются,
является зависимым от системы. В Linux место назначения часто файл
/var/log/messages .
Вот образец вывода, произведенного в Linux при использовании
--syslog . Этот вывод отформатирован для удобочитаемости, каждое
зарегистрированное сообщение фактически берет одну строку.
Mar 7 12:39:25 myhost MysqlClient[20824]:
SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,
DB_SERVER:'127.0.0.1', DB:'--', QUERY:'USE test;'
Mar 7 12:39:28 myhost MysqlClient[20824]:
SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,
DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'
См. раздел 5.5.1.3.
-
--table ,
-t
Вывод в формате таблицы. Это значение по умолчанию для интерактивного
использования, но может использоваться, чтобы произвести табличный
вывод в пакетном режиме.
-
--tee=file_name
Дописать копию вывода к данному файлу. Эта опция работает только в
интерактивном режиме. Раздел 5.5.1.2
обсуждает файлы далее.
-
--tls-version=
protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений. Значение:
список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--unbuffered ,
-n
Сбросить буфер после каждого запроса.
-
--user=user_name
,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
-
--verbose ,
-v
Подробный режим. Произведет больше вывода о том, что делает программа. Эта
опция может быть дана многократно, чтобы произвести все больше вывода.
Например, -v -v -v производит табличный выходной формат
даже в пакетном режиме.
-
--version ,
-V
Отобразить информацию о версии.
-
--vertical ,
-E
Запрос выводит строки вертикально (одна строка на значение столбца).
Без этой опции Вы можете определить вертикальный вывод для отдельных
запросов, заканчивая их \G .
-
--wait ,
-w
Если соединение не может быть установлено, ждать и
повторить вместо прерывания.
-
--xml ,
-X
Формат вывода XML.
<field name="column_name ">NULL</field>
Вывод, когда --xml
используется с соответствиями
mysql из mysqldump
--xml . См. раздел 5.5.4
.
Вывод XML также использует пространство имен XML, как показано здесь:
shell> mysql --xml -uroot -e "SHOW VARIABLES LIKE 'version%'"
<?xml version="1.0"?>
<resultset statement="SHOW VARIABLES LIKE 'version%'" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<row>
<field name="Variable_name">version</field>
<field name="Value">5.0.40-debug</field>
</row>
<row>
<field name="Variable_name">version_comment</field>
<field name="Value">Source distribution</field>
</row>
<row>
<field name="Variable_name">version_compile_machine</field>
<field name="Value">i686</field>
</row>
<row>
<field name="Variable_name">version_compile_os</field>
<field name="Value">suse-linux-gnu</field>
</row>
</resultset>
См. Bug #25946.
Вы можете также установить следующие переменные при использовании
--var_name =value .
connect_timeout
Число секунд перед тайм-аутом соединения. Значение по умолчанию
0 .
-
max_allowed_packet
Максимальный размер буфера для коммуникации клиент-сервер. Значение по
умолчанию составляет 16 МБ, максимум 1GB.
max_join_size
Автоматический предел для строк в соединении, используя
--safe-updates
. Значение по умолчанию 1,000,000.
net_buffer_length
Размер буфера для TCP/IP и коммуникации сокета.
Значение по умолчанию составляет 16 КБ.
select_limit
Автоматический предел для
SELECT , использующих
--safe-updates
. Значение по умолчанию 1,000.
5.5.1.2. Команды mysql
mysql
посылает каждый введенный запрос SQL серверу. Есть также ряд команд, которые
интерпретирует сам mysql
. Для списка этих команд надо ввести help или
\h на подсказку mysql> :
mysql> help
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection (\x) Clean session context.
For server side help, type 'help contents'
Если mysql
вызван с опцией
--binary-mode , все команды
mysql
отключены, кроме charset и delimiter
в неинтерактивном режиме (для ввода, переданного по каналу
mysql
или загруженному использованием команды source ).
У каждой команды есть подробная и краткая форма. Подробная форма не
является чувствительной к регистру. Подробная форма может сопровождаться
дополнительным разделителем точки с запятой, но краткая форма не должна.
Использование кратких команд в пределах многолинейного
комментария /* ... */ не поддержано.
help [arg ] ,
\h [arg ] ,
\? [arg ] ,
? [arg ]
Вывести на экран сообщение справки, перечисляющее доступные команды
mysql.
Если Вы обеспечиваете параметр help ,
mysql
использует это в качестве строки поиска, чтобы получить доступ к серверной
справке от содержания MySQL Reference Manual. См.
раздел 5.5.1.4.
charset charset_name ,
\C charset_name
Изменить набор символов по умолчанию и выпустить запрос
SET NAMES .
Это позволяет набору символов остаться синхронизированным на клиенте и
сервере, если mysql
выполнен с включенным автопереподключением (не рекомендуется),
потому что указанный набор символов используется для повторного соединения.
clear , \c
Очистить текущий ввод. Используйте это, если Вы передумали
выполнять вводимый запрос.
connect [db_name
host_name ]] ,
\r [db_name
host_name ]]
Повторно соединиться с сервером. Дополнительное параметры имя базы данных
и хоста могут быть даны, чтобы определить базу данных по умолчанию или хост.
Если опущено, текущие значения используются.
delimiter str ,
\d str
Изменить строку, которую
mysql интерпретирует как разделитель между запросами SQL.
Значение по умолчанию: символ точки с запятой (; ).
Строка разделителя может быть определена как
заключенный или не заключенный в кавычки параметр.
Заключение в кавычки может быть сделано с любой одинарной кавычкой
(' ), двойной кавычкой (" ) или
обратной галочкой (` ). Чтобы включать кавычку в пределах
заключенной в кавычки строки, заключите строку в кавычки иным символом
кавычки или выйдите из кавычки с наклонной чертой влево (\ ).
Наклонной черты влево нужно избежать за пределами заключенных в кавычки
строк, потому что это символ ESC для MySQL. Для не заключенного в
кавычки параметра разделитель считан до первого пробела или конца строки.
Для заключенного в кавычки параметра разделитель считан до соответствующей
кавычки на строке.
mysql
интерпретирует случаи разделителя как разделитель запроса где угодно,
кроме как в пределах заключенных в кавычки строк.
Будьте осторожны относительно определения разделителя, который мог бы
произойти в пределах других слов. Например, если Вы определяете разделитель
как X , Вы будете неспособны использовать слово
INDEX . mysql
интерпретирует это как
INDE сопровождаемый разделителем X .
Когда разделитель, признанный
mysql, установлен во что-то другое чем значение по
умолчанию ; , случаи этого символа посылают в сервер без
интерпретации. Однако, сервер непосредственно все еще интерпретирует
; как разделитель запросов. Это поведение на стороне сервера
играет роль для выполнения многократных запросов (см.
раздел 25.8.17)
и парсинга тела хранимых процедур и функций, триггеров и событий (см.
раздел 21.1).
edit , \e
Отредактируйте текущий входной запрос.
mysql проверяет значения переменных окружения
EDITOR и VISUAL , чтобы определить, который редактор
использовать. Редактор по умолчанию vi,
если никакая переменная не установлена.
Команда edit работает только в Unix.
ego , \G
Послать текущий запрос серверу, который будет выполнен и будет выводить на
экран результат, используя вертикальный формат.
exit , \q
Выйти из mysql
.
go , \g
Послать текущий запрос серверу.
nopager , \n
Отключить выходное оповещение. См. описание для pager .
Команда nopager работает только в Unix.
notee , \t
Отключите выходное копирование к файлу. См. tee .
nowarning , \w
Отключить показ предупреждений после каждого запроса.
pager [command ] ,
\P [command ]
Включить выходное оповещение. При использовании опции
--pager , когда
Вы вызываете mysql
, возможно просмотреть или искать результаты запроса в интерактивном
режиме такими программами Unix, как
less, more или
любой другой подобной программой. Если Вы не определяете никакого значения
для опции, mysql
проверяет значение переменной окружения PAGER и
приравнивает пейджер к этому. Функциональность пейджера работает
только в интерактивном режиме.
Выходное оповещение может быть включено в интерактивном режиме командой
pager и выключено nopager .
Команда берет дополнительный параметр, если дан, программа оповещения
установлена в него. Без параметра пейджер установлен в пейджер, который был
установлен в командной строке, или stdout ,
если никакой пейджер не был определен.
Выходное оповещение работает только в Unix, потому что это использует
функцию popen() , которая не существует в Windows.
В Windows опция tee может использоваться вместо этого, чтобы
сохранить вывод запроса, хотя это не столь удобно как pager
для того, чтобы просмотреть вывод в некоторых ситуациях.
print , \p
Напечатайте текущий входной запрос, не выполняя его.
prompt [str ] ,
\R [str ]
Реконфигурируйте подсказку
mysql к данной строке. Специальные символьные
последовательности, которые могут использоваться в подсказке, описаны
позже в этом разделе.
Если Вы определяете команду prompt без параметра,
mysql
сбрасывает подсказку к значению по умолчанию mysql> .
quit , \q
Выход из mysql
.
rehash , \#
Восстановить автозавершения, которые включают завершение имен базы данных,
таблицы и столбца в то время, как Вы вводите запросы. См. описание для опции
--auto-rehash
.
resetconnection , \x
Сбросить соединение, чтобы очистить статус сеанса.
Сброс соединения имеет эффекты, подобные
mysql_change_user()
или автопересоединению за исключением того, что соединение не закрыто и вновь
открыто, а переаутентификация не сделано. См. разделы
25.8.7.3 и
25.8.16.
Этот пример показывает как resetconnection
очищает значение, поддержанное в статусе сеанса:
mysql> SELECT LAST_INSERT_ID(3);
+-------------------+
| LAST_INSERT_ID(3) |
+-------------------+
| 3 |
+-------------------+
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 3 |
+------------------+
mysql> resetconnection;
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 0 |
+------------------+
source file_name , \.
file_name
Считать названный файл и выполнить запросы, содержащиеся там.
В Windows Вы можете определить разделители пути как
/ или \\ .
status , \s
Обеспечить информацию о статусе о соединении и сервере, который Вы
используете. Если Вы работаете в режиме
--safe-updates
, status также печатает значения для переменных
mysql,
которые затрагивают Ваши запросы.
system command , \!
command
Выполнитт данную команду, используя Ваш интерпретатор
команды по умолчанию.
Команда system работает в Unix.
tee [file_name ] ,
\T [file_name ]
При использовании --tee
, когда Вы вызываете
mysql, Вы можете зарегистрировать запросы и их вывод. Все
данные, выведенные на экран сохранены в данный файл. Это может быть очень
полезно для отладки. mysql
сбрасывает результаты в файл после каждого запроса,
непосредственно перед тем, как печатает свою следующую подсказку.
Функциональность работает только в интерактивном режиме.
Вы можете активировать эту опцию в интерактивном режиме командой
tee . Без параметра используется предыдущий файл.
Файл tee может быть отключен командой notee .
Выполнение tee снова повторно включает запись.
use db_name ,
\u db_name
Использовать db_name как базу данных по умолчанию.
warnings , \W
Включить показ предупреждений после каждого запроса (если есть).
Вот несколько подсказок о команде pager :
Вы можете использовать это, чтобы написать в файл,
результаты идут только в файл:
mysql> pager cat > /tmp/log.txt
Вы можете также передать любые опции для программы, которую Вы хотите
использовать в качестве Вашего пейджера:
mysql> pager less -n -i -S
- В предыдущем примере, отметьте опцию
-S .
Вы можете счесть это очень полезным для просмотра широких результатов
запроса. Иногда очень широкий набор результатов трудно читать на экране.
Опция -S less
может сделать набор результатов намного больше читаемым, потому что Вы можете
прокрутить это горизонтально с использованием клавиш со стрелкой вправо и
влево. Вы можете также использовать -S в интерактивном режиме в
пределах less, чтобы включить горизонтальный
режим просмотра. Для получения дополнительной информации читайте
manual page less:
shell> man less
- Опции
-F и -X могут использоваться с
less, чтобы заставить это выходить, если вывод
поместится на одном экране, что удобно, когда никакая прокрутка не нужна:
mysql> pager less -n -i -S -F -X
- Вы можете определить очень сложные команды пейджера для того, чтобы
обработать вывод запроса:
mysql> pager cat | tee /dr1/tmp/res.txt \
< | tee /dr2/tmp/res2.txt | less -n -i -S
В этом примере команда послала бы результаты запроса в два файла в двух
различных каталогах на двух различных файловых системах, смонтированных как
/dr1 и /dr2 и выведет на экран результаты с
применением less.
Вы можете также объединить функции tee и
pager . Имейте включенный файл tee и установите
pager в less,
теперь Вы в состоянии просмотреть результаты, используя
less и все еще добавите все в файл в то же
самое время. Различие между Unix tee , используемый с
pager и встроенной в
mysql командой tee состоит в том, что
встроенная tee работает, даже если Вы не имеете доступа к
Unix tee. Встроенная tee
также журналирует все, что напечатано на экране, тогда как Unix
tee с pager
не регистрирует так много. Дополнительно журналирование файла
tee может быть включено в интерактивном режиме изнутри
mysql.
Это полезно, когда Вы хотите зарегистрировать некоторые запросы к файлу,
но не другие.
Команда prompt реконфигурирует значение по умолчанию
mysql> . Строка для того, чтобы определить подсказку, может
содержать следующие специальные последовательности.
Опция | Описание
|
\C |
Текущий идентификатор соединения |
\c | Счетчик, который постепенно
увеличивается для каждого запроса, который Вы делаете |
\D | Полная текущая дата |
\d | База данных по умолчанию |
\h | Хост сервера |
\l | Текущий разделитель |
\m | Минуты текущего времени |
\n | Символ перевода строки |
\O | Текущий месяц в трехбуквенном
формате (Jan, Feb, ...) |
\o | Текущий месяц в числовом формате
|
\P | am/pm |
\p | Текущий порт TCP/IP
или файл сокета |
\R |
Текущее время в 24-часовом формате (0-23) |
\r |
Текущее время, стандартный 12-часовой формат (1-12) |
\S | Точка с запятой |
\s | Секунды текущего времени
|
\t | Символ табуляции |
\U | Ваше полное
user_name @host_name
для учетной записи |
\u | Ваше имя пользователя |
\v | Версия сервера |
\w | Текущий день недели в
трехбуквенном формате (Mon, Tue, ...) |
\Y | Текущий год, четыре цифры
|
\y | Текущий год, две цифры |
\_ | Пробел |
\ | Пробел (следует за
наклонной чертой влево) |
\' | Одинарная кавычка |
\" | Двойная кавычка |
\\ | Символ \ |
\x |
x , для любого не упомянутого выше
x
|
Вы можете установить подсказку несколькими способами:
Используйте переменную окружения.
Вы можете установить переменную окружения MYSQL_PS1
к строке запроса. Например:
shell> export MYSQL_PS1="(\u@\h) [\d]> "
- Используйте параметр командной строки.
Вы можете установить опцию
--prompt в командной строке
mysql:
shell> mysql --prompt="(\u@\h) [\d]> "
(user@host) [database]>
- Используйте файл опции.
Вы можете установить опцию
prompt в группе
[mysql] любого файла опций MySQL, например,
/etc/my.cnf или .my.cnf
в Вашем корневом каталоге. Например:
[mysql]
prompt=(\\u@\\h) [\\d]>\\_
В этом примере отметьте, что наклонные черты влево удвоены. Если Вы
устанавливаете подсказку, используя опцию prompt
в файле опции, желательно удвоить наклонные черты влево, используя
специальные быстрые опции. Есть некоторое перекрытие в наборе допустимых
быстрых опций и наборе специальных escape-последовательностей, которые
признаны в файлах опции. Правила для escape-последовательностей в файлах
опции перечислены в разделе 5.2.6.
Перекрытие может вызвать у Вас проблемы, если Вы используете единственные
наклонные черты влево. Например, \s интерпретируется как пробел,
а не как текущее значение секунд. Следующий пример показывает, как определить
подсказку в пределах файла опции, чтобы включать текущее время в формате
HH:MM:SS> :
[mysql]
prompt="\\r:\\m:\\s> "
- Установите подсказку в интерактивном режиме.
Вы можете изменить свою подсказку в интерактивном режиме при использовании
команды
prompt (или \R ):
mysql> prompt (\u@\h) [\d]>\_
PROMPT set to '(\u@\h) [\d]>\_'
(user @host ) [database ]>
(user @host ) [database ]> prompt
Returning to default PROMPT of mysql>
mysql><
5.5.1.3. Журналирование mysql
mysql
может делать эти типы журналирования для запросов,
выполненных в интерактивном режиме:
Следующее обсуждение описывает характеристики, которые относятся ко всем
типам журналирования, и предоставляет информацию, определенную для
каждого типа журналирования.
Как журналирование происходит
Для каждого включенного места назначения, журналирование запросы
происходит следующим образом:
Запросы зарегистрированы только когда выполнено в интерактивном
режиме. Запросы являются неинтерактивными, например, когда считаны из файла
или канала. Также возможно подавить журналирование запросы при использовании
опций --batch или
--execute .
- Запросы проигнорированы и не зарегистрированы, если они соответствуют
какому-либо образцу в списке ignore.
Этот список описан позже.
- mysql
регистрирует каждую непроигнорированную, непустую
строку запроса индивидуально.
- Если непроигнорированный запрос охватывает многократные строки (не
включая разделитель), mysql
связывает строки, чтобы сформировать полный запрос,
отображает символы новой строки на пробелы и регистрирует
результат плюс разделитель.
Следовательно, входной запрос, который охватывает многократные строки,
может быть зарегистрирован дважды. Рассмотрите этот ввод:
mysql> SELECT
-> 'Today is'
-> ,
-> CURDATE()
-> ;
В этом случае mysql
пишет SELECT, 'Today is'
, ,, CURDATE()
и ; строки пока читает их. Это также
регистрирует полный запрос после отображения SELECT\n'Today
is'\n,\nCURDATE() на SELECT 'Today is' , CURDATE()
плюс разделитель. Таким образом, эти строки
появляются в зарегистрированном выводе:
SELECT
'Today is'
,
CURDATE()
;
SELECT 'Today is' , CURDATE();
mysql
игнорирует регистрацию запросов, которые соответствуют любому образцу в
списке ignore. По умолчанию список образцов
"*IDENTIFIED*:*PASSWORD*" , чтобы проигнорировать
запросы, которые относятся к паролям. Соответствующий образец не является
чувствительным к регистру. В пределах образцов два
символа являются особенными:
Чтобы определить дополнительные образцы, используйте опцию
--histignore
или задайте переменную окружения MYSQL_HISTIGNORE .
Если оба варианта определены, значение опции имеет приоритет.
Значение должно быть отделенным двоеточиями списком из одного или более
образцов, которые добавлены к списку образца по умолчанию.
Образцы, определенные в командной строке, возможно, должны были бы быть
заключены в кавычки или экранированы, чтобы препятствовать тому, чтобы Ваш
интерпретатор команды обработал их особенно. Например, чтобы подавить
журналирование для UPDATE и DELETE
в дополнение к запросам, которые относятся к паролям, вызовите
mysql:
shell> mysql --histignore="*UPDATE*:*DELETE*"
Управление файлом истории
Файл .mysql_history должен быть защищен с рестриктивным
режимом доступа, потому что чувствительная информация могла бы быть написана
в него, например, текст запросов SQL, которые содержат пароли. См.
раздел 7.1.2.1.
Если Вы не хотите поддерживать файл истории, сначала удалите
.mysql_history , если есть. Затем используйте любой из следующих
методов, чтобы препятствовать тому, чтобы это было создано снова:
Установите переменную окружения MYSQL_HISTFILE в
/dev/null . Чтобы заставить эту установку вступать в силу каждый
раз, когда Вы входите в систему, поместите это в один из файлов
запуска Вашей оболочки.
- Создайте
.mysql_history как символическую ссылку к
/dev/null , это надо сделать только однажды:
shell> ln -s /dev/null $HOME/.mysql_history
Журналирование характеристик syslog
Если дана опция --syslog ,
mysql пишет
интерактивные запросы системному средству журналирования.
У журналирования сообщения есть следующие характеристики.
Журналирование происходит в уровень information.
Это соответствует приоритету LOG_INFO для
syslog в Unix/Linux syslog и
EVENTLOG_INFORMATION_TYPE для Windows Event Log.
Размер сообщения ограничен 1024 байтами.
Сообщения состоят из идентификатора
MysqlClient сопровождаемого этими значениями:
SYSTEM_USER
Системное имя пользователя (имя для входа в систему) или -- ,
если пользователь неизвестен.
MYSQL_USER
Имя пользователя MySQL (определенное опцией
--user ) или
-- , если пользователь неизвестен.
CONNECTION_ID :
Идентификатор соединения клиента. Это то же самое, как в пределах сеанса
CONNECTION_ID() .
DB_SERVER
Хост сервера или -- , если хост неизвестен.
DB
База данных по умолчанию или -- ,
если никакая база данных не была выбрана.
QUERY
Текст зарегистрированного запроса.
Вот образец вывода, произведенного в Linux при использовании
--syslog . Этот вывод отформатирован для удобочитаемости, каждое
зарегистрированное сообщение фактически берет одну строку.
Mar 7 12:39:25 myhost MysqlClient[20824]:
SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,
DB_SERVER:'127.0.0.1', DB:'--', QUERY:'USE test;'
Mar 7 12:39:28 myhost MysqlClient[20824]:
SYSTEM_USER:'oscar', MYSQL_USER:'my_oscar', CONNECTION_ID:23,
DB_SERVER:'127.0.0.1', DB:'test', QUERY:'SHOW TABLES;'
5.5.1.4. Справка сервера mysql
mysql> help search_string
Если Вы обеспечиваете параметр help ,
mysql
использует это в качестве строки поиска, чтобы получить доступ к серверной
справке MySQL Reference Manual. Правильное функционирование этой команды
требует, чтобы таблицы справки в базе данных mysql
были инициализированы с информацией о теме справки (см.
раздел 6.1.10).
Если там нет совпадения со строкой поиска, поиск терпит неудачу:
mysql> help me
Nothing found
Please try to run 'help contents' for a list of all accessible topics
Используйте help contents
, чтобы видеть список категорий справки:
mysql> help contents
You asked for help about help category: "Contents"
For more information, type 'help <item>', where <item> is one of the
following categories:
Account Management
Administration
Data Definition
Data Manipulation
Data Types
Functions
Functions and Modifiers for Use with GROUP BY
Geographic Features
Language Structure
Plugins
Storage Engines
Stored Routines
Table Maintenance
Transactions
Triggers
Если строка поиска соответствует многим элементам,
mysql
показывает список соответствия тем:
mysql> help logs
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following topics:
SHOW
SHOW BINARY LOGS
SHOW ENGINE
SHOW LOGS
Используйте тему в качестве строки поиска, чтобы видеть
элемент справки для той темы:
mysql> help show binary logs
Name: 'SHOW BINARY LOGS'
Description:
Syntax:
SHOW BINARY LOGS
SHOW MASTER LOGS
Lists the binary log files on the server. This statement is used as
part of the procedure described in [purge-binary-logs], that shows how
to determine which logs can be purged.
mysql> SHOW BINARY LOGS;
+---------------+-----------+
| Log_name | File_size |
+---------------+-----------+
| binlog.000015 | 724935 |
| binlog.000016 | 733481 |
+---------------+-----------+
Строка поиска может содержать подстановочные символы
% и _ . У них есть то же самое значение, что
касается соответствия образцу операций, выполненных с
LIKE . Например,
HELP rep% возвращает список тем,
которые начинаются с rep :
mysql> HELP rep%
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
REPAIR TABLE
REPEAT FUNCTION
REPEAT LOOP
REPLACE
REPLACE FUNCTION
5.5.1.5.
Выполнение запросов SQL из текстового файла
mysql,
как правило, используется в интерактивном режиме:
shell> mysql db_name
Однако, также возможно поместить Ваши запросы SQL в файл и затем велеть
mysql
читать свой ввод из того файла. Чтобы сделать так, создайте текстовый файл
text_file , который содержит запросы, которые Вы хотите
выполнить. Тогда вызовите mysql
:
shell> mysql db_name < text_file
Если Вы помещаете USE db_name как первый
запрос в файле, не нужно определить имя базы данных в командной строке:
shell> mysql < text_file
Если Вы уже выполняете mysql
, Вы можете выполнить файл скрипта SQL, используя
команду source или \. :
mysql> source file_name
mysql> \. file_name
Иногда Вы можете хотеть, чтобы Ваш скрипт вывел на экран информацию о
работе. Для этого Вы можете вставить запросы так:
SELECT '<info_to_display>' AS ' ';
Этот запрос выведет <info_to_display> .
Вы можете также вызвать mysql
с опцией
--verbose , которая заставляет каждый запрос быть выведенным
на экран прежде, чем результат, к которому он приводит.
mysql
игнорирует символы Unicode byte order mark (BOM) в начале входных файлов.
Ранеео он считал их и посылал в сервер, приводя к синтаксической ошибке.
Присутствие BOM не заставляет
mysql изменять свой набор символов по умолчанию.
Чтобы сделать это, вызовите mysql
с опцией
--default-character-set=utf8 .
См. раздел 4.5.
5.5.1.6. Подсказки по mysql
Этот раздел описывает некоторые методы, которые могут помочь Вам
использовать mysql
.
5.5.1.6.1. Редактирование входной строки
mysql
поддерживает редактирование входной строки, которое позволяет Вам изменить
текущую входную строку или вспомнить предыдущие входные строки. Например,
left-arrow и right-arrow
перемещают курсор горизонтально в пределах текущей входной строки, а
up-arrow и down-arrow
вверх и вниз через набор ранее вводимых строк.
Backspace удаляет символ перед курсором, ввод новых символов
вводит их в позиции курсора. Чтобы ввести строку, нажмите
Enter.
В Windows последовательности клавиш для редактирования
те же самые, как поддержано для редактирования команды в консолях.
В Unix сочетания клавиш зависят от входной библиотеки, использовавшейся,
чтобы создать mysql
(например, libedit или readline ).
Документация для libedit и readline
доступны онлайн. Чтобы изменить набор сочетаний клавиш, разрешенных данной
входной библиотекой, определите привязки клавиш в файле запуска библиотеки.
Это файл в Вашем корневом каталоге: .editrc для
libedit и .inputrc для readline .
Например, в libedit Control+W
удаляет все перед текущей позицией курсора и
Control+U удаляет всю строку. В
readline Control+W
удаляет слово перед курсором и Control+U
удаляет все перед текущей позицией курсора. Если
mysql был
создан, используя libedit , пользователь, который предпочитает
readline для этих двух клавиш может вставить следующие строки в
свой файл .editrc :
bind "^W" ed-delete-prev-word
bind "^U" vi-kill-line-prev
Чтобы видеть текущий набор привязок клавиш, временно поместите строку,
которая говорит только bind в конце
.editrc . mysql
покажет привязку, когда он запустится.
5.5.1.6.2.
Поддержка Unicode в Windows
Windows обеспечивает API на основе UTF-16LEдля того, чтобы читать из и
писать в консоль, клиент mysql
для Windows в состоянии использовать эти API.
Установщик Windows создает элемент в меню MySQL под именем MySQL
command line client - Unicode . Этот элемент вызывает
mysql
с набором свойств, чтобы сообщить через консоль серверу, что
надо применить Unicode.
Чтобы использовать в своих интересах эту поддержку вручную, выполните
mysql
в пределах консоли, которая использует совместимый шрифт Unicode и
устанавливает набор символов по умолчанию в набор символов Unicode, который
поддержан для коммуникации с сервером:
Откройте окно консоли.
- Перейдите в свойства консоли, выберите вкладку шрифта и выберите
Lucida Console или некоторый другой совместимый шрифт Unicode. Это
необходимо, потому что консоли запускаются по умолчанию, используя растровый
шрифт DOS, который является несоответствующим для Unicode.
- Выполните mysql.exe
с опцией
--default-character-set=utf8 (или utf8mb4 ).
Эта опция необходима потому, что utf16le не
поддержан как набор символов соединения.
С этими изменениями mysql
будет использовать Windows API, чтобы общаться с
консолью, используя UTF-16LE и с сервером, используя UTF-8. Пункт меню,
упомянутый ранее, устанавливает набор шрифтов и набор символов как
только что описано.
Чтобы избежать этих шагов каждый раз, когда Вы выполняете
mysql,
Вы можете создать ярлык, который вызывает
mysql.exe.
Ярлык должен установить шрифт консоли в Lucida Console
или некоторый другой совместимый шрифт Unicode и передать опцию
--default-character-set=utf8 (или utf8mb4 )
mysql.exe.
Альтернативно, создайте ярлык, который только устанавливает шрифт и
установите набор символов в группе [mysql] файла my.ini
:
[mysql]
default-character-set=utf8
5.5.1.6.3.
Отображение результатов запроса вертикально
Некоторые результаты запроса намного больше читаемы,
когда выведены на экран вертикально, а не в обычном горизонтальном формате
таблицы. Запросы могут быть выведены на экран вертикально, заканчивая запрос
с \G вместо точки с запятой. Например, более длинные текстовые значения,
которые включают новые строки, намного легче считать с вертикальным выводом:
mysql> SELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1\G
*************************** 1. row ***************************
msg_nro: 3068
date: 2000-03-01 23:29:50
time_zone: +0200
mail_from: Monty
reply: monty@no.spam.com
mail_to: "Thimble Smith" <tim@no.spam.com>
sbj: UTF-8
txt: >>>>> "Thimble" == Thimble Smith writes:
Thimble> Hi. I think this is a good idea. Is anyone familiar
Thimble> with UTF-8 or Unicode? Otherwise, I'll put this on my
Thimble> TODO list and see what happens.
Yes, please do that.
Regards,
Monty
file: inbox-jani-1
hash: 190402944
1 row in set (0.09 sec)
5.5.1.6.4. Использование опции
--safe-updates
Для новичков полезная опция запуска
--safe-updates
(или
--i-am-a-dummy ). Полезно для случаев, когда Вы, возможно,
скомандовали DELETE FROM tbl_name , но
забыли про WHERE . Обычно такой запрос удаляет все строки из
таблицы, что очень полезно в целях обучения. С
--safe-updates
Вы можете удалить строки только определяя значения ключа, которые
идентифицируют их. Это помогает предотвратить несчастные случаи.
Когда Вы используете
--safe-updates ,
mysql делает следующий запрос, когда
соединяется с сервером MySQL:
SET sql_safe_updates=1, sql_select_limit=1000, max_join_size=1000000;
См. раздел 6.1.5.
SET
имеет следующие эффекты:
Вам не разрешают выполнить
UPDATE или
DELETE , если Вы не определяете
ключевое ограничение в WHERE или не зададите
LIMIT (можно то и другое сразу):
UPDATE tbl_name SET not_key_column =val
WHERE key_column =val ;
UPDATE tbl_name SET not_key_column =val LIMIT 1;
- Сервер ограничивает все большие
SELECT 1000 строк, если запрос
не включает LIMIT .
- Сервер прерывает многотабличный
SELECT , который, вероятно, должен
обработать больше 1000000 комбинаций строк.
Чтобы определить пределы, отличающиеся от 1000 и 1000000,
Вы можете переопределить значения по умолчанию при использовании опций
--select_limit и --max_join_size :
shell> mysql --safe-updates --select_limit=500 --max_join_size=10000
5.5.1.6.5.
Отключение mysql реконнекта
Если mysql
теряет его соединение с сервером, посылая запрос, это немедленно и
автоматически пытается повторно соединиться с сервером и послать запрос
снова. Однако, даже если mysql
преуспевает в том, чтобы повторно соединиться, Ваше
первое соединение закончилось и все Ваши предыдущие объекты сеанса и
настройки потеряны: временные таблицы, режим autocommit и
и переменные, определяемые пользователем и сеанса. Кроме того, любая текущая
транзакция откатывается. Это поведение может быть опасным для Вас, как в
следующем примере, где сервер был закрыт и перезапущен между первым и вторым
запросами, о чем Вы не знали:
mysql> SET @a=1;
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO t VALUES(@a);
ERROR 2006: MySQL server has gone away
No connection. Trying to reconnect...
Connection id:1
Current database: test
Query OK, 1 row affected (1.30 sec)
mysql> SELECT * FROM t;
+------+
| a |
+------+
| NULL |
+------+
1 row in set (0.05 sec)
Переменная @a была потеряна с соединением и после пересоединения
это неопределено. Если важно иметь
mysql прерванный с ошибкой, если соединение было
потеряно, Вы можете запустить клиент
mysql с опцией
--skip-reconnect
.
См. раздел 25.8.16.
5.5.2. mysqladmin
Клиент для управления сервером MySQL
mysqladmin
это клиент для того, чтобы выполнить административные задачи.
Вы можете использовать это, чтобы проверить конфигурацию сервера и текущий
статус, создать и удалить базы данных и много всего еще.
Вызов mysqladmin
:
shell> mysqladmin [options ] command
[command-arg ]
[command
[command-arg ]] ...
mysqladmin
поддерживает следующие команды. Некоторые из команд берут параметр
после названия команды.
create db_name
Создайте новую базу данных db_name .
debug
Скажите серверу писать информацию об отладке в журнал ошибок.
Формат и контент этой информации подвержены изменениям.
Это включает информацию о Event Scheduler. См.
раздел 21.4.5.
-
drop db_name
Удалить базу данных db_name и все ее таблицы.
-
extended-status
Вывести на экран переменные состояния сервера и их значения.
-
flush-hosts
Сбросить всю информацию в кэше хоста.
-
flush-logs [log_type ...]
Сбросить все журналы.
mysqladmin flush-logs
разрешает дополнительным типам журнала быть данными,
чтобы определить, которые журналы сбросить. После flush-logs
Вы можете обеспечить разделенный пробелами список из одного или больше
следующих типов журнала: binary , engine ,
error , general , relay и
slow . Они соответствуют типам журнала, которые могут быть
определены для FLUSH LOGS .
-
flush-privileges
Перезагрузить таблицы привилегий (аналог reload ).
flush-status
Очистить переменные статуса.
-
flush-tables
Сбросить все таблицы.
-
flush-threads
Сбросить кэш потока.
-
kill id ,id ,...
Уничтожьте потоки сервера. Если многократные значения идентификаторов
потока даны, в списке не должно быть никаких пробелов.
-
password new_password
Установите новый пароль. Это изменяет пароль на
new_password для учетной записи, которую Вы используете
с mysqladmin
для того, чтобы соединиться с сервером. Таким образом, в следующий раз,
когда Вы вызываете mysqladmin
(или любую другую программу клиента) с использованием
той же самой учетной записи, Вы должны будете определить новый пароль.
Если new_password содержит пробелы или другие
символы, которые являются особенными для Вашего интерпретатора
команды, Вы должны приложить его в пределах кавычек. В Windows надо
убедиться, что использовали двойные кавычки, а не одинарные кавычки,
одинарные кавычки не отрезаны от пароля, а интерпретируются как
часть пароля. Например:
shell> mysqladmin password "my new password"
В MySQL 8.0 новый пароль может быть опущен после password .
В этом случае mysqladmin
запрашивает значение пароля, которое позволяет Вам
избежать определять пароль в командной строке. Исключение значения пароля
должно быть сделано только, если password заключительная команда
в mysqladmin
. Иначе следующий параметр будет взят в качестве пароля.
Не используйте эту команду, если сервер был запущен с
--skip-grant-tables . Никакое изменение пароля не будет применено.
Это истина, даже если Вы перед password выполните
flush-privileges на той же самой командной строке, чтобы
повторно включить таблицы привилегий, потому что работа сброса происходит
после того, как Вы соединяетесь. Однако, Вы можете использовать
mysqladmin flush-privileges
, чтобы повторно включить таблицы привилегий
и затем использовать отдельную команду
mysqladmin password
, чтобы изменить пароль.
ping
Проверьте, доступен ли сервер. Статус возврата от
mysqladmin
0, если сервер работает, 1, если это не так. Это 0 даже в случае такой
ошибки, как Access denied , потому что это означает, что сервер
выполняется, но отказался от соединения, что отличается от
не работающего сервера.
processlist
Покажите список активных потоков сервера. Это походит на вывод
SHOW PROCESSLIST .
Если дана опция
--verbose , вывод походит на вывод
SHOW FULL PROCESSLIST ,
см. раздел 14.7.5.29.
reload
Перезагрузите таблицы привилегий.
refresh
Сбросить все таблицы, закрыть и открыть снова файлы системного журнала.
shutdown
Остановите работу сервера.
start-slave
Запустите репликацию на ведомом сервере.
status
Выведите на экран короткое сообщение о состоянии сервера.
stop-slave
Остановить репликацию на ведомом сервере.
variables
Выведите на экран системные переменные сервера и их значения.
version
Информация о версии сервера.
Все команды могут быть сокращены к любой уникальной приставке. Например:
shell> mysqladmin proc stat
+----+-------+-----------+----+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------+-----------+----+---------+------+-------+------------------+
| 51 | monty | localhost | | Query | 0 | | show processlist |
+----+-------+-----------+----+---------+------+-------+------------------+
Uptime: 1473624 Threads: 1 Questions: 39487
Slow queries: 0 Opens: 541 Flush tables: 1
Open tables: 19 Queries per second avg: 0.0268
mysqladmin status
выводит на экран следующие значения:
Uptime
Число секунд, которое сервер MySQL работал.
Threads
Число активных потоков (клиенты).
Questions
Число запросов от клиентов, начиная с запуска сервера.
Slow queries
Число запросов, которые заняли больше
long_query_time
секунд, см. раздел 6.4.5.
Opens
Число открытых таблиц сервера.
Flush tables
Число выполенных команд flush-* ,
refresh и reload .
Open tables
Число таблиц, которые в настоящее время открыты.
Если Вы выполняете
mysqladmin shutdown, соединяясь с локальным сервером,
используя файл сокета Unix,
mysqladmin ждет, пока файл ID процесса сервера не был
удален, чтобы гарантировать, что сервер остановился должным образом.
mysqladmin
поддерживает следующие опции, которые могут быть определены в командной
строке или в группах [mysqladmin] и [client]
файла опции. Для информации о файлах опции, используемых программами MySQL,
см. раздел 5.2.6.
Таблица 5.9. Опции
mysqladmin
Формат | Описание
|
--bind-address | Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--compress | Сжать всю информацию, посланную
между клиентом и сервером |
--connect_timeout | Число секунд перед тайм-аутом соединения
|
--count
| Число итераций повторного выполнения команды |
--debug
| Писать журнал отладки |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти и статистика
центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать
|
--default-character-set | Определите набор символов по умолчанию
|
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--enable-cleartext-plugin |
Включить плагин аутентификации открытого текста |
--force
| Продолжить, даже если ошибка SQL происходит |
--help
| Отобразить сообщение справки |
--host
| Соединитесь с сервером MySQL на данном хосте |
--login-path | Читать опции пути входа в систему из .mylogin.cnf
|
--no-beep | Не пищать при ошибке |
--no-defaults | Не читать файлы опции |
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--pipe
| В Windows соединитесь с сервером, используя именованный канал
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатать опции по умолчанию |
--protocol | Протокол соединения, чтобы использовать |
--relative | Показать различие между текущими и предыдущими
значениями, когда используется с опцией --sleep |
--secure-auth | Не посылайте пароли серверу в
старом формате (pre-4.1) |
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений совместно используемой памяти |
--show-warnings | Покажите предупреждения после выполнения запроса
|
--shutdown_timeout | Максимальное количество секунд, которое ждать
завершения работы сервера |
--silent
| Тихий режим |
--sleep
| Выполнить команды неоднократно, между циклами спать |
--socket
| Для соединений с localhost файл сокета Unix |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath
| Путь к каталогу, который содержит доверенные сертификаты SSL
CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM
|
--ssl-cipher
| Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl
| Путь к файлу, который содержит списки аннулирования сертификатов
|
--ssl-crlpath | Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key
| Путь к файлу, который содержит ключ X509 в формате PEM |
--ssl-mode
| Статус безопасности соединения с сервером |
--tls-version | Протоколы, разрешенные для безопасных соединений
|
--user
| Имя пользователя MySQL, чтобы использовать, соединяясь с сервером
|
--verbose | Подробный режим |
--version | Отобразить информацию о версии |
--vertical | Запрос выводит строки вертикально
(одна строка на значение столбца) |
--wait
| Если соединение не может быть установлено, ждать и
повторить вместо прерывания |
--help ,
-?
Отобразить справочное сообщение.
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--compress , -C
Сжать всю информацию, посланную между клиентом и сервером,
если оба это умеют.
-
--count=N ,
-c N
Число итераций, которые сделать для повторного выполнения команды, если
дана опция --sleep
.
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка
debug_options
d:t:o,file_name . Значение по умолчанию
d:t:o,/tmp/mysqladmin.trace .
-
--debug-check
Напечатать некоторую информацию об отладке, когда программа выходит.
-
--debug-info
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
раздел 7.3.9.
-
--default-character-set=charset_name
Использовать charset_name
как набор символов по умолчанию. См.
раздел 11.5.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или он иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
Исключение: Даже с
--defaults-file клиент читает .mylogin.cnf .
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqladmin
обычно читает группы [client] и [mysqladmin] .
Если дана опция
--defaults-group-suffix=_other ,
mysqladmin также читает группы
[client_other] и [mysqladmin_other] .
-
--enable-cleartext-plugin
Включите плагин аутентификации открытого текста
mysql_clear_password , см.
раздел 7.5.1.4.
-
--force ,
-f
Не просить подтверждение для drop
db_name .
С многократными командами продолжить, даже если ошибка происходит.
-
--host=host_name ,
-h host_name
Соединитесь с сервером MySQL на данном хосте.
-
--login-path=name
Читать опции из названного пути входа в систему в
файле пути входа в систему .mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют,
с каким сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см.
раздел 5.6.7.
-
--no-beep ,
-b
Подавить звуковой сигнал предупреждения, который испускается по умолчанию
для таких ошибок, как отказ соединиться с сервером.
-
--no-defaults
Не читать файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение: файл .mylogin.cnf , если есть, считан во всех
случаях. Это разрешает паролям быть определенными более безопасным способом,
чем в командной строке даже когда применена
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см.
раздел 5.6.7.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), у Вас
не должно быть пробелов между опцией и паролем. Если Вы
опускаете password после
--password
или -p ,
mysqladmin запросит пароль явно.
Определение пароля в командной строке нужно считать опасным, см.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--pipe ,
-W
В Windows соединитесь с сервером, используя именованный канал.
Эта опция применяется, только если сервер поддерживает
соединения именованного канала.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
--default-auth
используется, чтобы определить плагин аутентификации, но
mysqladmin
не находит его. См.
раздел 7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения используют
не тот протокол. См. раздел 5.2.2.
-
--relative ,
-r
Покажите различие между текущими и предыдущими значениями,
когда используется опция
--sleep .
Эта опция работает только с командой extended-status .
-
--show-warnings
Покажите предупреждения, следующие из выполнения
запросов, посланных серверу.
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1).
Это блокирует соединения за исключением серверов, которые используют более
новый формат пароля.
Эта опция устарела. Это всегда включается и попытка отключить это
(
--skip-secure-auth ,
--secure-auth=0
) всегда производит ошибку.
Пароли, которые используют хэш pre-4.1, менее безопасны, чем пароли,
которые используют родной метод хеширующего пароля и должны исключаться.
Пароли Pre-4.1 устарели, и поддержка их была удалена.
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений, сделанных,
используя совместно используемую память для локального сервера. Значение по
умолчанию MYSQL . Имя совместно используемой памяти
является чувствительным к регистру.
Сервер должен быть запущен с опцией
--shared-memory , чтобы включить соединения
совместно используемой памяти.
-
--silent ,
-s
Выйти тихо, если соединение с сервером не может быть установлено.
-
--sleep=delay ,
-i delay
Выполняйте команды неоднократно, засыпая на
delay секунд между циклами. Опция
--count
определяет число итераций. Если
--count
не дан, mysqladmin
выполняет команды пока не будет прерван.
-
--socket=path ,
-S path
Для соединений с localhost файл сокета Unix или в
Windows имя канала.
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL, и указывают, где найти
ключи и сертификаты SSL. См.
раздел 7.4.5.
-
--tls-version=protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений.
Значение это список разделенных запятой значений, содержащий одно или более
имен протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--user=user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
-
--verbose ,
-v
Подробный режим. Напечатать больше информации о том,
что делает программа.
-
--version ,
-V
Отобразить информацию о версии.
-
--vertical
, -E
Вывод вертикально. Это подобно опции
--relative
, но вывод печатается вертикально.
-
--wait[=count ] ,
-w[count ]
Если соединение не может быть установлено, ждать и повторить вместо
прерывания. Если значение count дано, оно указывает
число раз, сколько повторить. Значение по умолчанию: однократно.
Вы можете также установить следующие переменные при использовании
--var_name =value .
connect_timeout
Максимальное количество секунд перед тайм-аутом соединения.
Значение по умолчанию 43200 (12 часов).
-
shutdown_timeout
Максимальное количество секунд, чтобы ждать завершения работы сервера.
Значение по умолчанию 3600 (1 час).
5.5.3. mysqlcheck
табличная программа обслуживания
mysqlcheck
выполняет табличное обслуживание: это проверяет, восстанавливает,
оптимизирует или анализирует таблицы.
Каждая таблица заблокирована и поэтому недоступна другим сеансам в то
время, как она обрабатывается, хотя для операций проверки таблица
заблокирована только с блокировкой READ (см.
раздел 14.3.5).
Табличные операции обслуживания могут быть отнимающими много времени,
особенно для больших таблиц. Если Вы используете опцию
--databases
или
--all-databases , чтобы обработать все таблицы в одной или более
базах данных, вызов
mysqlcheck может занять много времени. Это также истина
для mysql_upgrade
, потому что эта программа вызывает
mysqlcheck
, чтобы проверить все таблицы и восстановить их в случае необходимости.
mysqlcheck
подобен в функциональности
myisamchk, но работает по-другому. Основное
операционное различие в том, что
mysqlcheck должен использоваться, когда
mysqld
работает, тогда как myisamchk
должен использоваться, когда это не так. Выгода от
использования mysqlcheck
в том, что Вы не должны остановить сервер, чтобы
выполнить табличное обслуживание.
mysqlcheck
использует запросы SQL
CHECK TABLE ,
REPAIR TABLE ,
ANALYZE TABLE и
OPTIMIZE TABLE
удобным для пользователя способом. Это определяет, какие запросы использовать
Вы хотите выполнить, а затем посылает запросы серверу, который будет
их выполнять. Для деталей о механизмах хранения см. описания этих запросов в
разделе 14.7.2.
Механизм хранения MyISAM поддерживает все четыре операции
обслуживания, таким образом
mysqlcheck может использоваться, чтобы выполнить любую из
них на таблицах MyISAM . Другие механизмы хранения не обязательно
поддерживают все операции. В таких случаях на экран будет выведено сообщение
об ошибке. Например, если test.t является таблицей типа
MEMORY , попытка проверить это приводит к этому результату:
shell> mysqlcheck test t
test.t
note: The storage engine for the table doesn't support check
Если mysqlcheck
не способен восстановить таблицу, см.
раздел 2.10.4.
Это будет иметь место, например, для таблиц InnoDB ,
которые можно проверить CHECK TABLE
, но не починить их
REPAIR TABLE .
Лучше делать резервное копирование таблицы прежде, чем выполнить работу
ремонта таблицы, при некоторых обстоятельствах работа могла бы вызвать потерю
данных. Возможные причины включают, но не ограничены
ошибками файловой системы.
Есть три общих способа вызвать
mysqlcheck
:
shell> mysqlcheck [options ] db_name
[tbl_name ...]
shell> mysqlcheck [options ] --databases db_name ...
shell> mysqlcheck [options ] --all-databases
Если Вы не называете таблиц после db_name
или если Вы используете
--databases или
--all-databases
, все базы данных проверены.
У mysqlcheck
есть специальная функция по сравнению с другими программами
клиента. Поведение значения по умолчанию проверки таблиц
(--check )
может быть изменено, переименовывая исполняемый модуль.
Если Вы хотите иметь инструмент, который восстанавливает таблицы по
умолчанию, Вы должны только сделать копию
mysqlcheck
под именем mysqlrepair
или сделать символическую ссылку к
mysqlcheck
под именем mysqlrepair. Если Вы вызываете
mysqlrepair, это восстанавливает таблицы.
Имена, показанные в следующей таблице, могут использоваться, чтобы
изменить логику действий
mysqlcheck.
Команда | Смысл |
mysqlrepair |
Опция по умолчанию
--repair |
mysqlanalyze |
Опция по умолчанию
--analyze |
mysqloptimize |
Опция по умолчанию
--optimize |
mysqlcheck
поддерживает следующие опции, которые могут быть определены в командной
строке или в группах [mysqlcheck] и [client]
файла опции. Для информации о файлах опции, используемых программами MySQL,
см. раздел 5.2.6.
Таблица 5.10. Опции
mysqlcheck
Формат | Описание
|
--all-databases | Проверить все таблицы во всех базах данных
|
--all-in-1 | Выполнить единственный запрос для каждой базы данных,
который называет все таблицы этой базы данных |
--analyze | Проанализируйте таблицы |
--auto-repair | Если проверенная таблица
повреждена, автоматически восстановить |
--bind-address | Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--character-sets-dir | Каталог, где наборы символов установлены
|
--check
| Проверьте таблицы на ошибки |
--check-only-changed | Проверка только таблиц, которые изменились,
начиная с последней проверки |
--check-upgrade | Вызовите CHECK TABLE с опцией FOR UPGRADE
|
--compress | Сжать всю информацию, посланную
между клиентом и сервером |
--databases | Интерпретируйте все параметры как имена базы данных
|
--debug
| Писать журнал отладки |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти и статистика
центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать |
--default-character-set | Определите набор символов по умолчанию
|
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--enable-cleartext-plugin |
Включить плагин аутентификации открытого текста |
--extended | Проверьте и восстановите таблицы |
--fast
| Проверка только таблиц, которые не были закрыты должным образом
|
--force
| Продолжите, даже если ошибка SQL происходит |
--help
| Отобразить справку и выйти |
--host
| Соединитесь с сервером MySQL на данном хосте |
--login-path | Читать опции пути входа в систему из .mylogin.cnf
|
--medium-check | Сделайте проверку, которая
быстрее, чем --extended |
--no-defaults | Не читать файлы опции |
--optimize | Оптимизируйте таблицы |
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--pipe
| В Windows соединитесь с сервером, используя именованный канал
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатайте опции по умолчанию |
--protocol | Протокол соединения, чтобы использовать |
--quick
| Самый быстрый метод проверки |
--repair
| Выполните ремонт, который может восстановить почти все, кроме
уникальных ключей, которые не уникальны |
--secure-auth | Не посылайте пароли серверу в
старом формате (pre-4.1) |
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений совместно используемой памяти |
--silent
| Тихий режим |
--skip-database | Пропустите эту базу
данных в выполняемых операциях |
--socket
| Для соединений с localhost, файл сокета Unix |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath
| Путь к каталогу, который содержит доверенные сертиифкаты SSL
CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM
|
--ssl-cipher
| Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl
| Путь к файлу, который содержит списки аннулирования сертификатов
|
--ssl-crlpath | Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key
| Путь к файлу, который содержит ключ X509 в формате PEM |
--ssl-mode
| Статус безопасности соединения с сервером |
--tables
| Переопределение опции --databases или -B |
--tls-version | Протоколы, разрешенные для безопасных соединений
|
--use-frm | Для операций ремонта на таблицах MyISAM |
--user
| Имя пользователя MySQL, чтобы использовать, соединяясь с сервером
|
--verbose | Подробный режим |
--version | Информация о версии и выход |
--write-binlog | Журналировать запросы ANALYZE, OPTIMIZE, REPAIR
в двоичный журнал. --skip-write-binlog добавляет
NO_WRITE_TO_BINLOG к этим запросам. |
--help ,
-?
Отобразить справку и выйти.
-
--all-databases , -A
Проверьте все таблицы во всех базах данных. Это то же самое, как
использование
--databases с перечислением всех
баз данных в командной строке, за исключением того, что
INFORMATION_SCHEMA и performace_schema
не проверены. Они могут быть явно проверены, называя их в опции
--databases
.
-
--all-in-1 , -1
Вместо того, чтобы делать запрос для каждой таблицы, выполните
единственный для каждой базы данных, которая называет все таблицы той базы
данных, которая будет обработана.
-
--analyze ,
-a
Проанализируйте указанные таблицы.
-
--auto-repair
Если проверенная таблица повреждена, автоматически восстановите ее.
Любой необходимый ремонт сделан после того, как все таблицы были проверены.
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--check ,
-c
Проверьте таблицы на ошибки. Это работа по умолчанию.
-
--check-only-changed , -C
Проверка только таблиц, которые изменились, начиная с последней проверки
или не были закрыты должным образом.
-
--check-upgrade , -g
Вызов CHECK TABLE с опцией
FOR UPGRADE , чтобы проверить таблицы на несовместимости с
текущей версией сервера.
-
--compress
Сжать всю информацию, посланную между клиентом и сервером.
-
--databases , -B
Обработайте все таблицы в названных базах данных. Обычно
mysqlcheck
обрабатывает параметр имени в командной строке как имя базы данных и
любые последующие имена как имена таблиц. С этой опцией это обрабатывает
все параметры имени как имена баз данных.
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка debug_options
d:t:o,file_name . По умолчанию это
d:t:o .
-
--debug-check
Напечатайте некоторую информацию об отладке, когда программа выходит.
-
--debug-info
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-character-set=charset_name
Использовать charset_name как набор символов
по умолчанию. См. раздел 11.5.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как
относительный путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как
относительный путь, а не полный.
Исключение: Даже с опцией
--defaults-file
программы клиента читают .mylogin.cnf .
-
--defaults-group-suffix=str
Читайте не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqlcheck
обычно читает группы [client] и [mysqlcheck] .
Если дана опция
--defaults-group-suffix=_other ,
mysqlcheck
также читает группы [client_other] и
[mysqlcheck_other] .
-
--extended
, -e
Если Вы используете эту опцию, чтобы проверить таблицы, она гарантирует,
что они на 100% последовательны, но занимает много времени.
Если Вы используете эту опцию, чтобы восстановить таблицы, она выполняет
расширенный ремонт, который может не только занять много времени,
но может произвести много строк мусора!
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, см.
раздел 7.3.9.
-
--enable-cleartext-plugin
Включите плагин аутентификации открытого текста
mysql_clear_password , см.
раздел 7.5.1.4.
-
--fast ,
-F
Проверка только таблиц, которые не были закрыты должным образом.
-
--force ,
-f
Продолжите, даже если ошибка SQL происходит.
-
--host=host_name ,
-h host_name
Соединитесь с сервером MySQL на данном хосте.
-
--login-path=name
Читайте опции из названного пути входа в систему в
.mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см.
раздел 5.6.7.
-
--medium-check , -m
Сделайте проверку, которая быстрее
--extended
. Это находит только 99.99% всех ошибок, что должно быть достаточно
хорошо в большинстве случаев.
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за
чтения неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение: файл .mylogin.cnf , если это существует, считан во
всех случаях. Это разрешает паролям быть определенными более безопасным
способом, чем в командной строке даже когда есть опция
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см.
раздел 5.6.7.
-
--optimize
, -o
Оптимизируйте заданные таблицы.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), Вы не можете
иметь пробелы между опцией и паролем. Если Вы опускаете
password после
--password
или -p в командной строке,
mysqlcheck
запросит пароль явно.
Определение пароля в командной строке нужно считать опасным, см.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать указания
пароля в командной строке.
-
--pipe ,
-W
В Windows соединитесь с сервером, используя именованный канал.
Эта опция применяется, только если сервер поддерживает
соединения именованного канала.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
используется опция
--default-auth , чтобы определить плагин аутентификации, но
mysqlcheck
его не нашел, см.
раздел 7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Печатать название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения обычно заставляли бы
использовать не тот протокол. Для деталей о допустимых значениях см.
раздел 5.2.2.
-
--quick ,
-q
Если Вы используете эту опцию, чтобы проверить таблицы, она препятствует
тому, чтобы проверка просмотрела строки, чтобы проверить на неправильные
ссылки. Это самый быстрый метод проверки.
Если Вы используете эту опцию, чтобы восстановить таблицы, она пытается
восстановить только индексное дерево. Это самый быстрый метод ремонта.
-
--repair ,
-r
Выполните ремонт, который может восстановить почти все,
кроме уникальных ключей, которые ТЕПЕРЬ не уникальны.
-
--secure-auth
Не посылайте пароли в старом формате (pre-4.1).
Это блокирует соединения за исключением серверов, которые используют более
новый формат пароля.
Эта опция устарела. Это всегда включается и попытка выключения
(
--skip-secure-auth ,
--secure-auth=0
) производит ошибку авторизации.
Пароли, которые используют хэш pre-4.1, менее безопасны, чем пароли,
которые используют родной метод хеширования пароля. Пароли Pre-4.1 устарели.
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений,
сделанных, используя совместно используемую память для локального сервера.
Значение по умолчанию MYSQL . Имя совместно используемой памяти
является чувствительным к регистру.
Сервер должен быть запущен с опцией
--shared-memory
.
-
--silent ,
-s
Тихий режим. Напечатать только сообщения об ошибках.
-
--skip-database=db_name
Не включайте названную базу данных (имя чувствительно к регистру) в
операции, выполненные
mysqlcheck.
-
--socket=path ,
-S path
Для соединений с localhost , файл сокета Unix, чтобы
использовать, или в Windows имя именованного канала.
--ssl*
Опции, которые начинаются с --ssl ,
определяют, соединиться ли с сервером, используя SSL, и указывают, где найти
ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--tables
Переопределить опции
--databases или -B .
Все параметры имени после опции расценены как имена таблиц.
-
--tls-version=protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений.
Значение: список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--use-frm
Для операций ремонта на MyISAM получите структуру таблицы из
словаря данных так, чтобы таблица могла быть восстановлена, даже если файл
звголовка .MYI поврежден.
-
--user=user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
-
--verbose ,
-v
Подробный режим. Информация о различных этапах работы программы.
-
--version ,
-V
Отобразить информацию о версии.
-
--write-binlog
Эта опция включена по умолчанию, чтобы
ANALYZE TABLE ,
OPTIMIZE TABLE и
REPAIR TABLE , произведенные
mysqlcheck
, записаны в двоичный журнал. Используйте
--skip-write-binlog , чтобы добавить
NO_WRITE_TO_BINLOG к запросам так, чтобы они не
были зарегистрированы. Используйте
--skip-write-binlog , когда эти запросы нельзя послать в ведомые
устройства репликации или выполнить, используя двоичные журналы для
восстановления после резервного копирования.
5.5.4. mysqldump
Резервная программа базы данных
mysqldump
выполняет
логические резервные копии, производя ряд запросов SQL, которые могут
быть выполнены, чтобы воспроизвести оригинальные определения объекта базы
данных и табличные данные. Это выводит одну или более баз данных MySQL для
резервного копирования или передачи в другой SQL-сервер.
mysqldump
может также произвести вывод в CSV, другом разграниченном тексте
или формате XML.
mysqldump
требует, по крайней мере, привилегию
SELECT для выводимых
таблиц, SHOW VIEW
для вывода представлений, TRIGGER
для резервирования триггеров и
LOCK TABLES , если
не используется опция
--single-transaction . Определенные опции могли бы потребовать
других привилегий как отмечено в описаниях опции.
Чтобы перезагрузить файл дампа, Вам нужны привилегии, чтобы выполнить
запросы, которые это содержит, такие как соответствующее привилегии
CREATE для объектов, которые будут созданы теми запросами.
Вывод mysqldump
может включать запросы
ALTER DATABASE , которые изменяют сопоставление базы данных. Они
могут использоваться, когда дамп сохранил кодировки символов.
Чтобы перезагружать файл дампа, содержащий такие запросы, нужна
привилегия ALTER для затронутой базы данных.
Дамп, сделанный, используя PowerShell в Windows с выходным
перенаправлением, создает файл, у которого есть кодирование UTF-16:
shell> mysqldump [options] > dump.sql
Но UTF-16 не разрешен как набор символов соединения (см.
раздел 11.1.4),
таким образом, файл дампа не будет загружаться правильно. Чтобы обойти эту
проблему, используйте опцию --result-file ,
которая создает вывод в формате ASCII:
shell> mysqldump [options] --result-file=dump.sql
Работа и соображения масштабируемости
mysqldump включают удобство и гибкость рассмотрения или даже
редактирования вывода перед восстановлением. Вы можете клонировать базы
данных для развития и работы DBA или произвести небольшие изменения
существующей базы данных для того, чтобы проверить. Это не быстрое или
масштабируемое решение для того, чтобы поддержать значительное количество
данных. С большими размерами данных, даже если резервный шаг занимает
соответствующее время, восстановление данных может быть очень медленным,
потому что переигрывание запросов SQL вовлекает дисковый ввод/вывод для
вставки, построения индексов и так далее.
Для крупномасштабного резервного копирования и восстановления
физическое резервное копирование
является более соответствующим, чтобы скопировать файлы с данными в их
оригинальном формате, который может быть восстановлен быстро:
Если Ваши таблицы прежде всего InnoDB
или если у Вас есть смесь InnoDB и MyISAM ,
рассмотрите использование mysqlbackup из
MySQL Enterprise Backup (доступно как часть подписки Enterprise).
Это обеспечивает лучшую работу для InnoDB с минимальным
разрушением, это может также поддержать таблицы MyISAM
и другие механизмы хранения, это предоставляет много удобных возможностей
приспосабливать различные резервные скрипты. См.
раздел 27.2.
mysqldump
может получить и вывести табличное содержание построчно
или это может получить весь контент таблицы и буферизовать его в памяти
прежде, чем вывести. Буферизация в памяти может быть проблемой, если Вы
выводите большие таблицы. Чтобы вывести таблицу построчно, используйте опцию
--quick (или
--opt ,
которая включает --quick
). Опция --opt
(и --quick
) включена по умолчанию, так что, чтобы включить буферизацию в
памяти, надо использовать
--skip-quick .
Если Вы используете недавнюю версию
mysqldump,
чтобы произвести дамп, который будет перезагружен в очень старый сервер
MySQL, используйте
--skip-opt вместо
--opt или
--extended-insert .
См. раздел 8.4.
Синтаксис вызова
Есть общие способы использовать
mysqldump,
чтобы вывести одну или большее количество таблиц, одну или более полных баз
данных или весь сервер MySQL, как показано здесь:
shell> mysqldump [options ] db_name
[tbl_name ...]
shell> mysqldump [options ] --databases
db_name ...
shell> mysqldump [options ] --all-databases
Чтобы вывести все базы данных, не называйте таблицы после
db_name или используйте опции
--databases
или
--all-databases .
Чтобы видеть список опций, введите
mysqldump --help
.
Синтаксис опций, алфавитное резюме
mysqldump
поддерживает следующие опции, которые могут быть определены в командной
строке или в группах [mysqldump] и [client]
файла опции. Для информации о файлах опции, используемых программами
MySQL, см. раздел 5.2.6.
Таблица 5.11. Опции
mysqldump
Формат | Описание
|
--add-drop-database | Добавить DROP DATABASE перед
каждым CREATE DATABASE |
--add-drop-table | Добавить DROP TABLE перед каждым CREATE TABLE
|
--add-drop-trigger | Добавить DROP TRIGGER перед
каждым CREATE TRIGGER |
--add-locks |
Окружите каждый табличный дамп LOCK TABLES и UNLOCK TABLES |
--all-databases | Выведите все таблицы во всех базах данных
|
--allow-keywords | Позвольте создание имен столбцов, которые
являются ключевыми словами |
--apply-slave-statements | Включить STOP SLAVE перед CHANGE MASTER
и START SLAVE в конце вывода |
--bind-address | Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--character-sets-dir | Каталог, где наборы символов установлены
|
--comments | Добавьте комментарии, чтобы вывести файл |
--compact | Произведите более компактный вывод |
--compatible | Произведите вывод, который более совместим с другими
системами базы данных или с более старыми серверами MySQL |
--complete-insert | Используйте полные запросы INSERT,
которые включают имена столбцов |
--compress | Сжать всю информацию, посланную
между клиентом и сервером |
--create-options | Включайте все MySQL-специфичные табличные
опции в CREATE TABLE |
--databases | Интерпретируйте все параметры имени как
имена базы данных |
--debug | Писать журнал отладки |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти
и статистика центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать
|
--default-character-set | Определите набор символов по умолчанию
|
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--delete-master-logs | На основном сервере репликации
удалите двоичные журналы после выполнения работы дампа |
--disable-keys | Для каждой таблицы окружите запросы INSERT
запросами, чтобы отключить и включить ключи |
--dump-date | Включайте дату дампа как комменитарий "Dump completed
on", если есть опция --comments |
--dump-slave | Включить CHANGE MASTER, который перечисляет
координаты в двоичном журнале ведущего устройства |
--enable-cleartext-plugin |
Включите плагин аутентификации открытого текста |
--events | События дампа от выведенных баз данных |
--extended-insert | Многострочный формат INSERT |
--fields-enclosed-by | Опция используется с --tab и имеет то же
самое значение как соответствующий пункт для LOAD DATA INFILE |
--fields-escaped-by | Опция используется с --tab и имеет то же
самое значение как соответствующий пункт для LOAD DATA INFILE |
--fields-optionally-enclosed-by |
Опция используется с --tab и имеет то же
самое значение как соответствующий пункт для LOAD DATA INFILE |
--fields-terminated-by | Опция используется с --tab и имеет то же
самое значение как соответствующий пункт для LOAD DATA INFILE |
--flush-logs | Сбросить файлы системного журнала сервера
MySQL перед дампом |
--flush-privileges | Запрос FLUSH PRIVILEGES
после дампа базы данных mysql |
--force | Продолжите, даже если ошибка SQL происходит во
время табличного дампа |
--help | Отобразить справочное сообщение |
--hex-blob | Выведите двоичные столбцы,
используя шестнадцатеричное представление |
--host | Хост, чтобы соединиться (IP-адрес или имя) |
--ignore-error | Проигнорируйте определенные ошибки |
--ignore-table | Не выводите данную таблицу |
--include-master-host-port | Включить MASTER_HOST/MASTER_PORT в
CHANGE MASTER с --dump-slave |
--insert-ignore | Писать INSERT IGNORE вместо INSERT |
--lines-terminated-by | Опция используется с --tab и имеет то же
самое значение как соответствующий пункт для LOAD DATA INFILE |
--lock-all-tables | Заблокируйте все таблицы и все базы данных
|
--lock-tables | Заблокируйте все таблицы прежде, чем вывести их
|
--log-error | Добавить предупреждения и ошибки к названному файлу
|
--login-path | Читать опции пути входа в систему из .mylogin.cnf
|
--master-data | Напишите имя файла системного журнала и
позицию в нем в дамп |
--max_allowed_packet | Максимальная пакетная длина, чтобы послать в
или получить от сервера |
--net_buffer_length | Размер буфера для
TCP/IP и коммуникации сокета |
--no-autocommit | Добавить запросы INSERT
для каждой выведенной таблицы в пределах SET autocommit = 0 и COMMIT
|
--no-create-db | Не писать CREATE DATABASE |
--no-create-info | Не писать CREATE TABLE, которые обновляют
каждую выведенную таблицу |
--no-data | Не выводите табличное содержание |
--no-defaults | Не читайте файлы опции |
--no-set-names | Аналог --skip-set-charset |
--no-tablespaces | Не писать CREATE LOGFILE GROUP или
CREATE TABLESPACE в вывод |
--opt |
Сокращение для --add-drop-table --add-locks --create-options
--disable-keys --extended-insert --lock-tables --quick --set-charset
|
--order-by-primary | Выведите строки каждой таблицы, сортированные
ее первичным ключом, или ее первым уникальным индексом |
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--pipe | В Windows соединитесь с сервером,
используя именованный канал |
--plugin-dir | Каталог, где плагины установлены |
--port | Номер порта TCP/IP для соединения |
--print-defaults | Напечатайте опции по умолчанию |
--protocol | Протокол соединения, чтобы использовать |
--quick
| Получите строки для таблицы от сервера поштучно |
--quote-names | Идентификаторы кавычки в пределах
символов обратной кавычки |
--replace | Писать REPLACE вместо INSERT |
--result-file | Прямой вывод к данному файлу |
--routines | Выведите сохраненные подпрограммы
(процедуры и функции) от выведенных баз данных |
--secure-auth | Не посылайте пароли в сервер в
старом формате (pre-4.1) |
--set-charset | Добавьте SET NAMES default_character_set в вывод
|
--set-gtid-purged | Добавить ли SET @@GLOBAL.GTID_PURGED в вывод
|
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений совместно используемой памяти |
--single-transaction | BEGIN прежде, чем вывести данные |
--skip-add-drop-table | Не добавлять DROP TABLE перед
каждым CREATE TABLE |
--skip-add-locks | Не добавляйте блокировки |
--skip-comments | Не добавляйте комментарии |
--skip-compact | Не производите более компактный вывод |
--skip-disable-keys | Не отключайте ключи |
--skip-extended-insert | Выключите расширенный insert |
--skip-opt | Выключите опции, установленные --opt |
--skip-quick | Не получайте строки для таблицы от сервера поштучно
|
--skip-quote-names | Не заключайте идентификаторы в кавычки
|
--skip-set-charset | Не писать SET NAMES |
--skip-triggers | Не выводить триггеры |
--skip-tz-utc | Выключить tz-utc |
--socket | Для соединений с localhost файл сокета Unix |
--ssl-ca | Путь к файлу, который содержит список доверенных SSL CA
|
--ssl-capath | Путь к каталогу, который содержит доверенные
сертификаты SSL CA в формате PEM |
--ssl-cert | Путь к файлу, который содержит
сертификат X509 в формате PEM |
--ssl-cipher | Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl | Путь к файлу, который содержит
списки аннулирования сертификатов |
--ssl-crlpath | Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key | Путь к файлу, который содержит ключ X509 в формате PEM
|
--ssl-mode | Статус безопасности соединения с сервером |
--tab | Произведите отделенные табуляциями файлы с данными
|
--tables | Перекрыть --databases или -B |
--tls-version | Протоколы для безопасных соединений |
--triggers | Дамп триггеров для каждой выведенной таблицы |
--tz-utc | Добавить SET TIME_ZONE='+00:00' в дамп |
--user | Имя пользователя MySQL, чтобы
использовать, соединяясь с сервером |
--verbose | Подробный режим |
--version | Информация о версии |
--where | Выведите только строки, выбранные данным условием WHERE
|
--xml | Вывод в формате XML |
Опции соединения
mysqldump
регистрируется на сервере MySQL, чтобы извлечь информацию.
Следующие опции определяют, как соединиться с сервером MySQL на той же самой
машине или на удаленной системе.
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--compress , -C
Сжать всю информацию, посланную между клиентом и сервером.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, см.
раздел 7.3.9.
-
--enable-cleartext-plugin
Включите плагин аутентификации открытого текста
mysql_clear_password , см.
раздел 7.5.1.4.
-
--host=host_name ,
-h host_name
Данные о дампе от сервера MySQL на данном хосте.
Хост по умолчанию localhost .
-
--login-path=name
Читать опции из названного пути входа в систему в
.mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см.
раздел 5.6.7.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), у Вас
не должно быть пробелов между опцией и паролем.
Если Вы опускаете password после
--password или -p ,
mysqldump
запросит пароль явно.
Определение пароля в командной строке нужно считать опасным, см.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--pipe , -W
В Windows соединитесь с сервером, используя именованный канал.
Эта опция применяется, только если сервер поддерживает
соединения именованного канала.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
--default-auth
используется, чтобы определить плагин аутентификации, но
mysqldump
не находит это. См. раздел
7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения. Полезно, когда другие параметры соединения обычно
заставляли бы использоваться не тот протокол, см.
раздел 5.2.2.
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1).
Это блокирует соединения за исключением серверов, которые
используют более новый формат пароля.
Эта опция устарела и будет удалена.
Это всегда включается и попытка отключить это
(
--skip-secure-auth ,
--secure-auth=0 ) приводит к ошибке.
--socket=path ,
-S path
Для соединений с localhost файл сокета Unix.
Для Windows имя именованного канала.
--ssl*
Опции, которые начинаются с
--ssl , определяют, соединиться ли с сервером, используя SSL
и указывают, где найти ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--tls-version=protocol_list
Протоколы разрешены клиентом для зашифрованных соединений.
Значение: список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--user=user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
Вы можете также установить следующие переменные при использовании
--var_name =value :
max_allowed_packet
Максимальный размер буфера для коммуникации клиент-сервер.
Значение по умолчанию составляет 24MB, максимум 1GB.
-
net_buffer_length
Начальный размер буфера для коммуникации клиент-сервер.
Создавая многострочный INSERT
(как с
--extended-insert или
--opt ),
mysqldump
создает строки до
net_buffer_length байт в длину.
Если Вы увеличиваете эту переменную, гарантируйте, что у системной переменной
net_buffer_length
сервера есть значение, по крайней мере этого размера.
Опции файла опций
Эти опции используются, чтобы управлять, который файл опции читать.
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-file=
file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
Исключение: Даже с
--defaults-file клиенты читают .mylogin.cnf .
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqldump
обычно читает группы [client] и [mysqldump] . Если
дана опция
--defaults-group-suffix=_other , то
mysqldump
также читает группы [client_other] и
[mysqldump_other] .
-
--no-defaults
Не читать файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение: файл .mylogin.cnf , если существует,
считан во всех случаях. Это разрешает паролям быть определенными более
безопасным способом, чем в командной строке, даже когда есть опция
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см.
раздел 5.6.7.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
Опции DDL
Скрипты использования для
mysqldump включают создание нового экземпляра MySQL
(включая таблицы базы данных), и замена данных в существующем экземпляре
с существующими базами данных и таблицами. Следующие опции позволяют Вам
определять, что сделать и настроить, восстанавливая дамп, кодируя различные
запросы DDL в пределах файла дампа.
--add-drop-database
Записать DROP DATABASE
перед каждым CREATE DATABASE
. Эта опция, как правило, используется в соединении с
--all-databases
или
--databases , потому что
CREATE DATABASE не записаны, если одна из тех опций не определена.
-
--add-drop-table
Написать DROP TABLE перед
каждым CREATE TABLE .
-
--add-drop-trigger
Написать DROP TRIGGER
перед каждым CREATE TRIGGER
.
-
--all-tablespaces , -Y
Добавляет к табличному дампу, все запросы SQL, которые должны были создать
любые табличные пространства, используемые
NDB . Эта информация иначе не включена в вывод
mysqldump.
Эта опция в настоящее время относится только к таблицам MySQL Cluster,
которые не поддержаны в MySQL 8.0.
-
--no-create-db , -n
Блокировать запросы CREATE
DATABASE , которые иначе включены в вывод, если заданы опции
--databases
или
--all-databases .
-
--no-create-info , -t
Не писать CREATE TABLE ,
которые составляют каждую выведенную таблицу.
Эта опция не исключает запросы,
создающие группы файла системного журнала или табличные пространства из
вывода mysqldump
, однако, Вы можете использовать опцию
--no-tablespaces
именно с этой целью.
--no-tablespaces , -y
Эта опция запрещает все
CREATE LOGFILE GROUP и
CREATE TABLESPACE
в выводе mysqldump
.
--replace
Писать REPLACE вместо
INSERT .
Опции отладки
Следующие опции печатают информацию об отладке, кодируют информацию в
файле дампа или позволяют работе дампа продолжаться независимо
от потенциальных проблем.
--allow-keywords
Создание разрешения имен столбцов, которые являются ключевыми словами.
Это работает, предварительно устанавливая каждое имя
столбца с именем таблицы.
-
--comments , -i
Напишите дополнительную информацию в файле дампа, такую как версия
программы, версия сервера и хост. Эта опция включена по умолчанию.
Чтобы подавить эту дополнительную информацию, надо использовать
--skip-comments
.
-
--debug[=debug_options ] ,
-# [debug_options ]
Напишите журнал отладки. Типичная строка
debug_options
d:t:o,file_name .
Значение по умолчанию d:t:o,/tmp/mysqldump.trace .
-
--debug-check
Напечатайте некоторую информацию об отладке, когда программа выходит.
--debug-info
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
--dump-date
Если дана опция
--comments ,
mysqldump производит комментарий следующей
формы в конце дампа:
-- Dump completed on DATE
Однако, дата заставляет файлы дампа, взятые в разное время, отличаться, даже
если данные иначе идентичны.
--dump-date и
--skip-dump-date
управляет, добавлена ли дата к комментарию. Значение по умолчанию
--dump-date
(включать дату в комментарий).
--skip-dump-date
блокирует печать даты.
-
--force , -f
Проигнорируйте все ошибки: продолжите, даже если ошибка SQL происходит во
время табличного дампа.
Одно использование этой опции должно заставить
mysqldump
продолжать выполняться, даже когда это сталкивается с представлением, которое
стало недопустимым, потому что определение относится к таблице, которая была
удалена. Без --force
mysqldump выходит с сообщением об ошибке. С
--force mysqldump
печатает сообщение об ошибке, но это также пишет
комментарий SQL, содержащий определение представления в
дамп, и продолжает выполняться.
Если также дана опция
--ignore-error , чтобы проигнорировать определенные ошибки,
--force
имеет высший приоритет.
-
--log-error=file_name
Предупреждения и ошибки журналируются, дописывая их к названному файлу.
Значение по умолчанию не должно сделать никакого журналирования.
-
--skip-comments
См. описание
--comments .
-
--verbose , -v
Подробный режим. Напечатать больше информации о том,
что делает программа.
Справочные опции
Следующие опции выводят на экран информацию о
mysqldump.
Опции интернационализации
Следующие опции изменяют, как
mysqldump
представляет символьные данные с национальными языковыми настройками.
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--default-character-set=charset_name
Применить charset_name как набор символов
по умолчанию. См. раздел 11.5.
Если никакой набор символов не определен,
mysqldump
использует набор utf8 .
-
--no-set-names , -N
Выключает
--set-charset , то же самое как определение
--skip-set-charset .
--set-charset
Писать SET NAMES
default_character_set в вывод.
Эта опция включена по умолчанию. Чтобы блокировать запрос
SET NAMES , применяется
--skip-set-charset
.
Опции репликации
mysqldump
часто используется, чтобы создать пустой экземпляр или экземпляр
включая данные, на ведомом сервере в конфигурации репликации.
Следующие опции относятся к дампу и восстановлению данных по ведущему
устройству и ведомым серверам.
--apply-slave-statements
Для ведомого дампа, произведенного с опцией
--dump-slave
, добавить STOP SLAVE перед
CHANGE MASTER TO и
START SLAVE конце вывода.
-
--delete-master-logs
На основном сервере удалите двоичные журналы, посылая
PURGE BINARY LOGS
серверу после выполнения дампа. Эта опция автоматически включает
--master-data
.
-
--dump-slave[=value ]
Эта опция подобна
--master-data за исключением того, что это используется,
чтобы вывести ведомый сервер, чтобы произвести файл дампа, который может
использоваться, чтобы настроить другой сервер как ведомое устройство, у
которого есть то же самое ведущее устройство как у выведенного сервера.
Это заставляет вывод дампа включать
CHANGE MASTER TO , который
указывает на координаты двоичного журнала (имя файла и позиция) ведущего
устройства выведенного ведомого устройства.
CHANGE MASTER TO
читает значения Relay_Master_Log_File и
Exec_Master_Log_Pos из вывода
SHOW SLAVE STATUS и
использует их для MASTER_LOG_FILE и MASTER_LOG_POS .
Это координаты главного сервера, от которых ведомое устройство
должно начать копировать.
Несогласованности в последовательности транзакций от журнала реле, которые
были выполнены, могут заставить неправильную позицию использоваться. См.
раздел
19.4.1.34.
--dump-slave заставляет координаты от ведущего устройства
использоваться, а не таковые из выведенного сервера, как сделано в
--master-data
. Кроме того, эта опция вызывает переопределение
--master-data , если используется.
Эта опция не должна использоваться, если сервер, куда дамп будет применен,
использует gtid_mode=ON
и MASTER_AUTOPOSITION=1 .
Значение опции обработано как и
--master-data
(отсутствие значения или 1 заставляет CHANGE MASTER TO
писать в дамп, установка 2 заставляет запрос быть написанным, но
в комментарии SQL), и имеет тот же самый эффект как --master-data
с точки зрения включения или отключения других опций и в том,
как блокировка обработана.
Эта опция заставляет
mysqldump останавливать ведомый поток SQL перед дампом и
перезапускать это снова после.
В соединении с --dump-slave
--apply-slave-statements и
--include-master-host-port могут также использоваться.
-
--include-master-host-port
Для CHANGE MASTER TO
в ведомом дампе, произведенном с
--dump-slave
, добавить MASTER_HOST и MASTER_PORT
для имени хоста и номера порта TCP/IP ведущего устройства.
-
--master-data[=value ]
Используйте эту опцию, чтобы вывести основной сервер, чтобы произвести
файл дампа, который может использоваться, чтобы настроить другой сервер как
ведомое устройство. Это заставляет вывод дампа включать
CHANGE MASTER TO ,
который указывает на двоичные координаты журнала (имя файла и позиция)
выведенного сервера. Это координаты главного сервера, от которых ведомое
устройство должно начать копировать после того, как Вы загружаете файл
дампа в ведомое устройство.
Если значение опции 2, CHANGE
MASTER TO запрос написан как комментарий SQL и таким образом
только информативен, это не имеет никакого эффекта, когда файл дампа
перезагружен. Если значение опции 1, запрос не написан как комментарий и
вступает в силу, когда файл дампа перезагружен. Если никакое значение опции
не определено, значение по умолчанию 1.
Эта опция требует привилегии
RELOAD
и двоичный журнал должен быть включен.
--master-data автоматически выключает
--lock-tables
. Это также включает
--lock-all-tables , если
--single-transaction также определена, тогда глобальная блокировка
чтения приобретена только в течение короткого времени в начале дампа (см.
описание для
--single-transaction ). Во всех случаях любое действие на
журналах происходит в точный момент дампа.
Также возможно настроить ведомое устройство, выводя существующее ведомое
устройство ведущего устройства, используя
--dump-slave
, которая перекрывает --master-data и предписывает ее
проигнорировать, если обе опции используются.
-
--set-gtid-purged=value
Эта опция включает информацию по управлению глобальным операционным ID
(GTID), написанную в файл дампа, указывая, добавить ли
SET @@global.gtid_purged в
вывод. Эта опция может также заставить написать в вывод запрос, который
отключает двоичное журналирование в то время, как файл дампа перезагружается.
Следующая таблица показывает разрешенные значения опции.
Значение по умолчанию AUTO .
Значение | Смысл
|
OFF | Не добавлять
SET в вывод. |
ON |
Добавить SET в вывод. Ошибка происходит, если GTID
не включены на сервере. |
AUTO |
Добавить SET в вывод, если GTID включены на сервере.
|
--set-gtid-purged имеет следующий эффект на двоичное
журналирование, когда файл дампа перезагружен:
Опции формата
Следующие опции определяют, как представить весь файл дампа или
определенные виды данных в файле дампа. Они также управляют, написана ли
определенная дополнительная информация в файл дампа.
--compact
Произведите более компактный вывод. Эта опция включает
--skip-add-drop-table ,
--skip-add-locks
,
--skip-comments
,
--skip-disable-keys и
--skip-set-charset
.
-
--compatible=name
Произведите вывод, который более совместим с другими системами базы данных
или с более старыми серверами MySQL. Значение
name может быть
ansi , mysql323 ,
mysql40 , postgresql ,
oracle , mssql ,
db2 , maxdb , no_key_options ,
no_table_options или no_field_options .
Чтобы использовать несколько значений, отделите их запятыми. У этих значений
есть то же самое значение, как соответствующие опции для того, чтобы
установить серверный режим SQL. См. раздел
6.1.8.
Эта опция не гарантирует совместимости с другими серверами. Это только
включает те значения режима SQL, которые в настоящее время доступны для
вывода более совместимого дампа. Например, --compatible=oracle
не отображает типы данных на типы Oracle
или использует синтаксис комментария Oracle.
Эта опция требует версии сервера 4.1.0 или выше.
С более старыми серверами это ничего не делает.
-
--complete-insert , -c
Используйте полные INSERT ,
которые включают имена столбцов.
-
--create-options
Включайте все MySQL-определенные табличные опции в
CREATE TABLE .
-
--fields-terminated-by=... ,
--fields-enclosed-by=... ,
--fields-optionally-enclosed-by=... ,
--fields-escaped-by=...
Эти опции используются с
--tab
и имеют то же самое значение, как передача FIELDS
в LOAD DATA INFILE .
См. раздел 14.2.6.
--hex-blob
Выведите двоичные столбцы, используя шестнадцатеричный формат (например,
'abc' станет 0x616263 ). Затронутые типы данных
BINARY ,
VARBINARY , все
BLOB и
BIT .
-
--lines-terminated-by=...
Эта опция используется с
--tab и имеет то
же самое значение, как передача LINES для
LOAD DATA INFILE .
См. раздел 14.2.6.
-
--quote-names , -Q
Цитировать идентификаторы (такие как имена баз данных, таблиц и столбцов)
в пределах символов ` . Если режим SQL
ANSI_QUOTES
включен, идентификаторы заключены в кавычки в пределах " .
Эта опция включена по умолчанию. Это может быть отключено с
--skip-quote-names , но эта опция должна быть дана после любой
опции, такой как
--compatible , которая может включить
--quote-names
.
-
--result-file=file_name ,
-r file_name
Прямой вывод к названному файлу. Файл результата создается и его
предыдущее содержание будет переписано, даже если ошибка
происходит, производя дамп.
Эта опция должна использоваться в Windows, чтобы предотвратить
конвертацию \n в \r\n carriage return/newline.
-
--tab=dir_name ,
-T dir_name
Произведите отделенные табуляциями файлы с данными текстового формата.
Для каждой выведенной таблицы
mysqldump создает файл
tbl_name .sql , который содержит запрос
CREATE TABLE ,
который составляет таблицу, и файл
tbl_name .txt , который содержит данные.
Значение опции: каталог, в котором можно написать файлы.
Эта опция должна использоваться только, когда
mysqldump
выполнен на той же самой машине, что и
mysqld.
Поскольку сервер создает файлы *.txt в каталоге, который Вы
определяете, каталог, должен быть перезаписываемым сервером, учетная запись
MySQL, которую Вы используете, должна иметь привилегию
FILE . Так как
mysqldump
создает *.sql в том же самом каталоге это должно быть
перезаписываемо Вашей системной учетной записью.
По умолчанию файлы .txt с данными отформатированы, используя
символы табуляции между значениями столбцов и новой строкой в конце каждой
строки. Формат может быть определен явно, используя опции
--fields-xxx и
--lines-terminated-by .
Значения столбцов преобразованы в набор символов, определенный опцией
--default-character-set .
--tz-utc
Эта опция включает столбцы TIMESTAMP
, которые будут выведены и перезагружены между серверами в
различных часовых поясах.
mysqldump устанавливает свою зону времени соединения в
UTC и добавляет SET TIME_ZONE='+00:00' к файлу дампа. Без этой
опции столбцы TIMESTAMP
выведены и перезагружены в часовых поясах, местных для источника и целевого
сервера, что может заставить значения изменяться, если серверы находятся в
различных часовых поясах. --tz-utc также защищает от изменений
из-за летнего времени. --tz-utc включен по умолчанию. Чтобы
отключить это, надо использовать --skip-tz-utc .
-
--xml , -X
Напишите вывод дампа как правильно построенный XML.
NULL, 'NULL' и пустые значения:
Для столбца, названного column_name , значение
NULL , пустая строка и строковое значение 'NULL'
отличны от друг друга в выводе, произведенном этой опцией, следующим образом.
Value: | XML Representation:
|
NULL (unknown value
) | <field name="column_name "
xsi:nil="true" />
|
'' (пустая строка)
| <field name="column_name
"></field>
|
'NULL' (строковое значение
) | <field name="column_name
">NULL</field>
|
Вывод mysql
, когда выполнен используя
--xml , также следует предыдущим правилам. См.
раздел 5.5.1.1.
Вывод XML из mysqldump
включает пространство имен XML, как показано здесь:
shell> mysqldump --xml -u root world City
<?xml version="1.0"?>
<mysqldump xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<database name="world">
<table_structure name="City">
<field Field="ID" Type="int(11)" Null="NO" Key="PRI" Extra="auto_increment" />
<field Field="Name" Type="char(35)" Null="NO" Key="" Default="" Extra="" />
<field Field="CountryCode" Type="char(3)" Null="NO" Key="" Default="" Extra="" />
<field Field="District" Type="char(20)" Null="NO" Key="" Default="" Extra="" />
<field Field="Population" Type="int(11)" Null="NO" Key="" Default="0" Extra="" />
<key Table="City" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="ID"
Collation="A" Cardinality="4079" Null="" Index_type="BTREE" Comment="" />
<options Name="City" Engine="MyISAM" Version="10" Row_format="Fixed" Rows="4079"
Avg_row_length="67" Data_length="273293" Max_data_length="18858823439613951"
Index_length="43008" Data_free="0" Auto_increment="4080"
Create_time="2007-03-31 01:47:01" Update_time="2007-03-31 01:47:02"
Collation="latin1_swedish_ci" Create_options="" Comment="" />
</table_structure>
<table_data name="City">
<row>
<field name="ID">1</field>
<field name="Name">Kabul</field>
<field name="CountryCode">AFG</field>
<field name="District">Kabol</field>
<field name="Population">1780000</field>
</row>
...
<row>
<field name="ID">4079</field>
<field name="Name">Rafah</field>
<field name="CountryCode">PSE</field>
<field name="District">Rafah</field>
<field name="Population">92020</field>
</row>
</table_data>
</database>
</mysqldump>
Фильтрация опций
Следующие опции управляют, которые виды объектов схемы написаны в файл
дампа: по категориям, такие как триггеры или события, по имени, например,
выбирая, которые базы данных и таблицы вывести, или даже фильтруя строки
табличных данных, используя WHERE .
--all-databases , -A
Выведите все таблицы во всех базах данных. Это то же самое, как
использование
--databases и перечисление всех баз данных в командной строке.
До MySQL 8.0 опции
--routines и
--events для
mysqldump и
mysqlpump не требуются, чтобы сдампить
сохраненные подпрограммы и события, используя
--all-databases
: дамп включает системную базу данных mysql , а значит
таблицы mysql.proc и mysql.event , содержащие
сохраненные подпрограммы и определения событий. С MySQL 8.0 таблицы
the mysql.event и mysql.proc не используются.
Определения для соответствующих объектов сохранены в таблицах словаря данных,
но те таблицы не выведены. Чтобы включать сохраненные подпрограммы
и события в дамп, сделанном, используя опцию
--all-databases
, используйте явно опции
--routines
и --events .
-
--databases , -B
Выведите несколько баз данных. Обычно
mysqldump
обрабатывает первый параметр имени в командной строке как имя базы данных и
последующие имена как имена таблиц. С этой опцией это обрабатывает все
параметры имени как имена базы данных.
CREATE DATABASE и USE
включены в вывод перед каждой новой базой данных.
Эта опция может использоваться, чтобы вывести
performace_schema , которая обычно не выводится даже с
--all-databases
. Также используйте опцию
--skip-lock-tables
.
-
--events , -E
Включить события Event Scheduler для выведенных баз данных в выводе.
Эта опция требует привилегию EVENT
для тех баз данных.
Вывод, произведенный при использовании --events ,
содержит CREATE EVENT ,
чтобы создать события.
-
--ignore-error=error[,error]...
Проигнорируйте указанные ошибки. Значение опции: список разделенных
запятой значений кодов ошибки, определяющих, какие ошибки проигнорировать во
время mysqldump
. Если дана еще и опция
--force , чтобы
проигнорировать все ошибки,
--force имеет приоритет.
-
--ignore-table=db_name.tbl_name
Не выводите данную таблицу, которая должна быть определена,
используя имя базы данных и имя таблицы. Чтобы проигнорировать много таблиц,
используйте эту опцию многократно. Эта опция также может использоваться,
чтобы проигнорировать представления.
-
--no-data , -d
Не пишите информацию о строке таблицы (то есть, не выводите табличное
содержание). Это полезно, если Вы хотите вывести только
CREATE TABLE для таблицы
(например, чтобы создать пустую копию таблицы, загружая файл дампа).
-
--routines , -R
Включайте сохраненные подпрограммы (процедуры и функции) для выведенных
баз данных в вывод. Эта опция требует глобальной привилегии
SELECT .
Вывод, произведенный при использовании --routines включает
CREATE PROCEDURE и
CREATE FUNCTION ,
чтобы создать подпрограммы.
--tables
Отменяет опции
--databases или -B .
mysqldump расценивает все параметры имени
после опции как имена таблиц.
--triggers
Включайте триггеры для каждой выведенной таблицы в вывод.
Эта опция включена по умолчанию, отключите это с --skip-triggers
.
Чтобы быть в состоянии вывести триггеры таблицы, Вы должны иметь
привилегию TRIGGER
для этой таблицы.
Многократные триггеры допустимы.
mysqldump
выводит триггеры в порядке активации, чтобы, когда файл дампа перезагружен,
триггеры были созданы в том же самом порядке активации. Однако, если файл
дампа содержит многократные триггеры для таблицы, у которых есть те же самые
событие и момент действия, ошибка происходит для попыток загрузить файл дампа
в более старый сервер, который не поддерживает многократные триггеры. См.
раздел 2.10.2.1,
Вы можете преобразовать триггеры, чтобы быть совместимыми с
более старыми серверами.
-
--where='where_condition ' ,
-w 'where_condition '
Выведите только строки, выбранные данным условием WHERE .
Кавычки вокруг условия принудительны, если оно содержит пробелы или другие
символы, которые являются особенными для Вашего интерпретатора команды.
Например:
--where="user='jimf'"
-w"userid>1"
-w"userid<1"
Исполнительные опции
Следующие опции являются самыми важными для исполнения, особенно операций
восстановления. Для больших наборов данных, восстановление (обработка
INSERT в файле дампа), самая отнимающая много времени часть.
Когда не срочно восстановить данные быстро, стоит запланировать и проверить
исполнение этого этапа заранее. В случае времен восстановления, измеренных в
часах, Вы могли бы предпочесть альтернативное резервное копирование и
восстановление, такое как MySQL
Enterprise Backup для InnoDB и смешанных баз данных.
Работа также затронута
транзакционнными опциями
, прежде всего для работы дампа.
--disable-keys , -K
Для каждой таблицы, окружите
INSERT /*!40000 ALTER TABLE
tbl_name DISABLE KEYS */; и
/*!40000 ALTER TABLE tbl_name ENABLE KEYS */;
. Это делает загрузку файла дампа быстрее, потому что индексирование
создается после того, как все строки вставлены. Эта опция эффективна только
для группового индекса MyISAM .
-
--extended-insert , -e
Писать INSERT ,
используя синтаксис многократной строки, который включает несколько списков
VALUES . Это приводит к меньшему файлу дампа и убыстряет
вставки, когда файл перезагружен.
-
--insert-ignore
Писать INSERT IGNORE
вместо INSERT .
--opt
Эта опция, включенная по умолчанию, является сокращением для комбинации
--add-drop-table
,
--add-locks
,
--create-options ,
--disable-keys
,
--extended-insert ,
--lock-tables
,
--quick и
--set-charset
. Это дает быструю работу дампа и производит файл дампа, который
может быть перезагружен в сервер MySQL быстро.
Поскольку опция --opt
включена по умолчанию, Вы только определяете обратную
--skip-opt ,
чтобы выключить несколько настроек по умолчанию. См. обсуждение
групп опций
mysqldump для информации об отборном включении или
отключении подмножества опций, затронутых --opt .
-
--quick , -q
Эта опция полезна для дампа больших таблиц. Это вынуждает
mysqldump
получить строки для таблицы от сервера поштучно вместо того, чтобы получить
весь набор строк и буферизовать это в памяти перед выписыванием.
--skip-opt
См. описание опции
--opt .
Опции транзакций
Следующие опции балансируют между исполнением работы дампа, надежностью и
последовательностью экспортируемых данных.
--add-locks
Окружите каждый табличный дамп LOCK
TABLES и UNLOCK TABLES
. Это приводит к быстрой вставке, когда файл дампа перезагружен. См.
раздел 9.2.2.1.
-
--flush-logs , -F
Сбросить файлы системного журнала сервера MySQL прежде, чем запустить
дамп. Эта опция требует привилегии
RELOAD .
Если Вы используете эту опцию в комбинации с
--all-databases
, журналы сбрасываются для каждой выведенной базы данных
. Исключение, используя
--lock-all-tables ,
--master-data
или
--single-transaction : в этом случае журналы сбрасываются
только однажды, соответствуя моменту, когда все таблицы заблокированы.
Если Вы хотите, чтобы Ваш дамп и сброс данных журнала на диск произошли в
точно тот же самый момент, Вы должны использовать --flush-logs с
--lock-all-tables ,
--master-data
или <
code>--single-transaction.
-
--flush-privileges
Добавить FLUSH PRIVILEGES
в вывод дампа после дампа базы данных mysql .
Эта опция должна использоваться в любое время, когда дамп содержит
базу данных mysql и любую другую базу данных, которая зависит от
данных в базе данных mysql для надлежащего восстановления.
Для обновлений до MySQL 5.7.2 или выше от более старых версий
не надо использовать --flush-privileges . Для инструкций по
обновлению в этом случае см.
раздел 2.10.1.1.
--lock-all-tables , -x
Заблокируйте все таблицы через все базы данных. Это достигнуто, приобретая
глобальную блокировку чтения на время всего дампа. Эта опция автоматически
выключает
--single-transaction и
--lock-tables
.
-
--lock-tables , -l
Для каждой выведенной базы данных, заблокируйте все таблицы, которые будут
выведены прежде, чем вывести их. Таблицы заблокированы с
READ LOCAL , чтобы разрешить параллельные вставки в случае
MyISAM . Для транзакционных таблиц InnoDB
--single-transaction намного лучшая опция, чем
--lock-tables , потому что это не должно
заблокировать таблицы вообще.
Так как --lock-tables блокирует таблицы для каждой базы
данных отдельно, эта опция не гарантирует, что таблицы в файле дампа
логически последовательны между базами данных. Таблицы в различных базах
данных могут быть выведены в абсолютно различных статусах.
Некоторые опции, например,
--opt ,
автоматически включают --lock-tables . Если Вы хотите
переопределить это, надо использовать --skip-lock-tables
в конце списка опций.
-
--no-autocommit
Добавить INSERT
для каждой выведенной таблицы в пределах SET autocommit = 0 и
COMMIT .
-
--order-by-primary
Выведите строки каждой таблицы, сортированные ее первичным ключом
или ее первым уникальным индексом, если такой индекс существует.
Это полезно, выводя MyISAM , которая будет загружена в
InnoDB , но заставляет дамп работать значительно дольше.
-
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений, сделанных,
используя совместно используемую память для локального сервера.
Значение по умолчанию MYSQL .
Имя совместно используемой памяти является чувствительным к регистру.
Сервер должен быть запущен с
--shared-memory
.
-
--single-transaction
Эта опция устанавливает операционный режим изоляции в
REPEATABLE READ
и посылает запрос SQL START TRANSACTION
серверу прежде, чем вывести данные. Это полезно только с
транзакционными таблицами вроде InnoDB ,
потому что тогда это выводит последовательное состояние базы данных в то
время, как START TRANSACTION
был выпущен, не блокируя приложений.
Используя эту опцию, Вы должны иметь в виду, что только
InnoDB выведены в последовательном состоянии.
Например, любые таблицы MyISAM или MEMORY ,
выведенные, используя эту опцию, могут все еще изменить статус.
В то время, как
--single-transaction дамп в процессе, чтобы гарантировать
допустимый файл дампа (правильное табличное содержание и двоичные координаты
журнала), никакое другое соединение не должно использовать следующие запросы:
ALTER TABLE ,
CREATE TABLE ,
DROP TABLE ,
RENAME TABLE ,
TRUNCATE TABLE .
Последовательное чтение не изолировано от этих запросов, таким образом,
использование их на таблице, которая будет выведена, может вызвать
SELECT , который выполнен
mysqldump,
чтобы получить табличное содержание, получит неправильное содержание
или потерпит неудачу.
Опции --single-transaction и
--lock-tables
являются взаимоисключающими, потому что
LOCK TABLES
заставляет любые ждущие транзакции передать неявно.
Чтобы вывести большие таблицы, объедините
--single-transaction с
--quick .
Группы опций
--opt
включает несколько настроек, которые сотрудничают, чтобы выполнить быструю
работу дампа. Все эти настройки включены по умолчанию, потому что
--opt включена по умолчанию. Вы можете выключить эти настройки
как группу, определяя --skip-opt ,
произвольно повторно включая определенные настройки, определяя связанные
опции позже в командной строке
--compact
выключает несколько настроек, которые управляют тем, появляются ли
дополнительные запросы и комментарии в выводе. Вы можете следовать
этой опции с другими опциями, которые повторно включают определенные
настройки или включают все настройки, при использовании формы
--skip-compact .
Когда Вы выборочно включаете или отключаете эффект групповой опции,
порядок важен, потому что опции обработаны по порядку. Например,
--disable-keys
--lock-tables
--skip-opt
не имело бы намеченного эффекта, это то же самое, как отдельно
--skip-opt .
Примеры
Сделать резервное копирование всей базы данных:
shell> mysqldump db_name > em>backup-file.sql
Загрузить файл дампа назад в сервер:
shell> mysql db_name < backup-file.sql
Другой способ перезагрузить файл дампа:
shell> mysql -e "source /path-to-backup/backup-file.sql " db_name
mysqldump
также очень полезен для заполнения баз данных, копируя данные от одного
сервера MySQL в другой:
shell> mysqldump --opt db_name | mysql --host=remote_host
-C db_name
Вы можете вывести несколько баз данных одной командой:
shell> mysqldump --databases db_name1
[db_name2 ...] > my_databases.sql
Чтобы вывести все базы данных, используйте опцию
--all-databases
:
shell> mysqldump --all-databases > all_databases.sql
Для таблиц InnoDB
mysqldump
обеспечивает способ сделать резервное копирование онлайн:
shell> mysqldump --all-databases --master-data
--single-transaction > all_databases.sql
Это резервное копирование приобретает глобальную блокировку чтения на всех
таблицах (с использованием FLUSH TABLES WITH
READ LOCK ) в начале дампа. Как только эта блокировка была
приобретена, двоичные координаты журнала считаны, и блокировка снята.
Если долго обновляющие запросы работают, когда запущен
FLUSH , сервер MySQL может быть
остановлен, пока те запросы не заканчиваются. После этого дамп
освобождает блокировку и не нарушает чтения и записи на таблицах.
Если запросы обновления, что сервер MySQL получает, коротки
(с точки зрения времени выполнения), начальный период блокировки не должен
быть примечательным, даже со многими обновлениями.
Для восстановления момента времени (также известный как
roll-forward, когда Вы должны восстановить старую
резервную копию и переиграть изменения, которые произошли начиная с того
резервного копирования), часто полезно ротировать двоичный журнал (см.
раздел 6.4.4)
или, по крайней мере, знать двоичные координаты журнала,
которым соответствует дамп:
shell> mysqldump --all-databases --master-data=2 > all_databases.sql
Или:
shell> mysqldump --all-databases --flush-logs --master-data=2
> all_databases.sql
Опции
--master-data и
--single-transaction могут использоваться одновременно, что
обеспечивает удобный способ сделать резервное копирование онлайн подходящим
для использования до восстановления момента времени,
если таблицы сохранены, используя InnoDB .
См. разделы 8.2 и
8.3.
Ограничения
mysqldump
не выводит performance_schema или sys
по умолчанию. Чтобы вывести любую из них, назовите их явно в командной
строке. Вы можете также назвать их с опцией
--databases
. Для performance_schema также используйте опцию
--skip-lock-tables
.
mysqldump
не выводит INFORMATION_SCHEMA .
mysqldump
включает запросы, чтобы обновить таблицы
general_log и slow_query_log
для дампов базы данных mysql .
Табличное содержание журнала не выведено.
Если Вы сталкиваетесь с проблемами поддержки представления из-за
недостаточных привилегий, см. раздел
C.5.
5.5.5.
mysqlimport программа импорта данных
mysqlimport
обеспечивает интерфейс командной строки для SQL-запроса
LOAD DATA INFILE .
Большинство опций
mysqlimport соответствует непосредственно параметрам
LOAD DATA INFILE , см.
раздел 14.2.6.
Вызов mysqlimport
:
shell> mysqlimport [options ] db_name
textfile1 [textfile2 ...]
Для каждого текстового файла, названного в командной строке,
mysqlimport
отрезает любое расширение от имени файла и использует результат, чтобы
определить название таблицы, в которую можно импортировать содержание файла.
Например, файлы patient.txt , patient.text и
patient все были бы импортированы в таблицу patient .
mysqlimport
поддерживает следующие опции, которые могут быть определены в
командной строке или в группах [mysqlimport] и
[client] файла опции. Для информации о файлах опции,
используемых программами MySQL, см.
раздел 5.2.6.
Таблица 5.12. Опции mysqlimport
Формат | Описание
|
--bind-address
| Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--columns | Эта опция берет список разделенных запятой значений
имен столбцов как значение |
--compress | Сжать всю информацию, посланную
между клиентом и сервером |
--debug
| Писать журнал отладки |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти и статистика
центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать
|
--default-character-set | Определите набор символов
значения по умолчанию |
--defaults-extra-file | Читать файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--delete
| Освободить таблицу прежде, чем импортировать текстовый файл
|
--enable-cleartext-plugin |
Включите плагин аутентификации открытого текста |
--fields-enclosed-by | У этой опции есть то же самое значение,
как соответствующий параметр LOAD DATA INFILE |
--fields-escaped-by | Эта опция имеет то же значение, что и
соответствующий параметр LOAD DATA INFILE |
--fields-optionally-enclosed-by | Эта опция имеет то же значение,
что и соответствующий параметр LOAD DATA INFILE |
--fields-terminated-by | Эта опция имеет то же значение, что и
соответствующий параметр LOAD DATA INFILE |
--force | Продолжите, даже если ошибка SQL происходит |
--help | Отобразить справочное сообщение |
--host
| Соединитесь с сервером MySQL на данном хосте |
--ignore
| См. описание опции --replace |
--ignore-lines | Проигнорируйте первые N строк файла с данными
|
--lines-terminated-by | Эта опция имеет то же значение, что и
соответствующий параметр LOAD DATA INFILE |
--local
| Читать входные файлы локально с хоста клиента |
--lock-tables | Заблокируйте все таблицы для записи прежде, чем
обработать любые текстовые файлы |
--login-path | Загрузить опции пути входа в систему из .mylogin.cnf
|
--low-priority | Применить LOW_PRIORITY, загружая таблицу |
--no-defaults | Не читать файлы опций |
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--pipe
| В Windows соединитесь с сервером, используя именованный канал
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатайте опции по умолчанию |
--protocol | Протокол соединения, чтобы использовать |
--replace | Опции --replace и --ignore управляют обработкой
входных строк, которые дублируют существующие строки на
уникальных значениях ключа |
--secure-auth | Не посылайте пароли в сервер в
старом формате (pre-4.1) |
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений совместно используемой памяти |
--silent
| Произведите вывод только, когда ошибки происходят |
--socket
| Для соединений с localhost файл сокета Unix |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath | Путь к каталогу, который содержит доверенные
сертификаты SSL CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM
|
--ssl-cipher | Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl | Путь к файлу, который содержит
списки аннулирования сертификатов |
--ssl-crlpath | Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key | Путь к файлу, который содержит ключ X509 в формате PEM
|
--ssl-mode | Статус безопасности соединения с сервером |
--tls-version | Протоколы для безопасных соединений |
--use-threads | Число потоков для параллельной загрузки файла
|
--user
| Имя пользователя MySQL, чтобы использовать, соединяясь с сервером
|
--verbose | Подробный режим отчета |
--version | Отобразить информацию о версии
|
--help ,
-?
Отобразить справочное сообщение.
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--columns=column_list ,
-c column_list
Эта опция берет список разделенных запятой значений имен столбцов.
Порядок имен столбцов указывает, как соответствуют столбцы файла с
данными и столбцы таблицы.
-
--compress
, -C
Сжать всю информацию, посланную между клиентом и сервером.
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка debug_options
d:t:o,file_name . По умолчанию это
d:t:o .
-
--debug-check
Напечатайте некоторую информацию об отладке, когда программа выходит.
-
--debug-info
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-character-set=charset_name
Использовать charset_name
как набор символов по умолчанию. См.
раздел 11.5.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
раздел 7.3.9.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как
относительный путь, а не полный.
Исключение: Даже с опцией
--defaults-file
программы клиента читают .mylogin.cnf .
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqlimport
обычно читает группы [client] и [mysqlimport] .
Если есть опция
--defaults-group-suffix=_other ,
mysqlimport
также читает группы [client_other] и
[mysqlimport_other] .
-
--delete ,
-D
Освободите таблицу прежде, чем импортировать текстовый файл.
-
--enable-cleartext-plugin
Включите плагин аутентификации открытого текста
mysql_clear_password , см.
раздел 7.5.1.4.
-
--fields-terminated-by=... ,
--fields-enclosed-by=... ,
--fields-optionally-enclosed-by=... ,
--fields-escaped-by=...
У этих опций есть то же самое значение, как у соответствующих параметров
LOAD DATA INFILE . См.
раздел 14.2.6.
-
--force ,
-f
Проигнорируйте ошибки. Например, если таблица для текстового файла не
существует, продолжите обрабатывать любые остающиеся файлы. Без
--force
mysqlimport
выходит, если таблица не существует.
-
--host=host_name ,
-h host_name
Импортировать данные серверу MySQL на данном хосте.
Хост по умолчанию localhost .
-
--ignore ,
-i
См. описание опции
--replace .
-
--ignore-lines=N
Проигнорируйте первые N строк файла с данными.
-
--lines-terminated-by=...
У этой опции есть то же самое значение, как у соответствующего параметра
LOAD DATA INFILE .
Например, чтобы импортировать файлы Windows, которым закончили строки с
возвратом каретки/перевода строки, надо использовать
--lines-terminated-by="\r\n" .
Вам, возможно, придется удвоить наклонные черты влево, в зависимости от
соглашений Вашего интерпретатора команд. См.
раздел 14.2.6.
-
--local ,
-L
Читать входные файлы локально с хоста клиента.
-
--lock-tables , -l
Заблокируйте все таблицы на запись прежде,
чем обработать любые текстовые файлы. Это гарантирует, что все таблицы
синхронизированы на сервере.
-
--login-path=name
Читать опции из названного пути входа в систему в
.mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см.
раздел 5.6.7.
-
--low-priority
Использовать LOW_PRIORITY , загружая таблицу.
Это затрагивает только механизмы хранения, которые используют только
блокировку на уровне таблицы (например,
MyISAM , MEMORY и MERGE ).
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций от файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение то, что файл .mylogin.cnf , если это существует,
считан во всех случаях. Это разрешает паролям быть определенными более
безопасным способом, чем в командной строке, даже когда применяется
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см.
раздел 5.6.7.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ),
не должно быть пробелов
между опцией и паролем. Если Вы опускаете password
после --password
или -p в командной строке,
mysqlimport
запросит его явно.
Определение пароля в командной строке нужно считать опасным. См.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--pipe ,
-W
В Windows соединитесь с сервером, используя именованный канал.
Эта опция применяется, только если сервер поддерживает
соединения именованного канала.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если опция
--default-auth
используется, чтобы определить плагин аутентификации, но
mysqlimport
его не нашел, см.
раздел 7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения заставляют
использовать не тот протокол, см.
раздел 5.2.2.
-
--replace ,
-r
Опции --replace
и --ignore
управляют обработкой входных строк, которые дублируют
существующие строки на уникальных значениях ключа. Если Вы определяете
--replace ,
новые строки заменяют существующие строки, у которых есть то же самое
уникальное значение ключа. Если Вы определяете
--ignore ,
входные строки, которые дублируют существующую строку на уникальном значении
ключа, будут пропущены. Если Вы не определяете ни одну опцию, ошибка
происходит, когда двойное значение ключа найдено, и остальная часть
текстового файла проигнорирована.
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1).
Эта опция устарела. Это всегда включается и попытка отключения
(
--skip-secure-auth ,
--secure-auth=0 ) приводит к ошибке.
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений, сделанных,
используя совместно используемую память для локального сервера. Значение по
умолчанию MYSQL . Имя совместно используемой памяти
является чувствительным к регистру.
Сервер должен быть запущен с
--shared-memory
.
-
--silent ,
-s
Тихий режим. Произведите вывод только, когда ошибки происходят.
-
--socket=
path , -S path
Для соединений с localhost файл сокета Unix, в Windows
имя именованного канала.
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL, и указывают, где найти
ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--tls-version=protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений.
Значение: список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--user=user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
-
--use-threads=N
Файлы загружаются параллельно в N потоков.
-
--verbose ,
-v
Многословный режим. Напечатать больше информации о том,
что делает программа.
-
--version ,
-V
Отобразить информацию о версии.
Вот типовой сеанс, который демонстрирует использование
mysqlimport
:
shell> mysql -e 'CREATE TABLE imptest(id INT, n VARCHAR(30))' test
shell> ed
a
100 Max Sydow
101 Count Dracula
.
w imptest.txt
32
q
shell> od -c imptest.txt
0000000 1 0 0 \t M a x S y d o w \n 1 0
0000020 1 \t C o u n t D r a c u l a \n
0000040
shell> mysqlimport --local test imptest.txt
test.imptest: Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
shell> mysql -e 'SELECT * FROM imptest' test
+-----+---------------+
| id | n |
+-----+---------------+
| 100 | Max Sydow |
| 101 | Count Dracula |
+-----+---------------+
5.5.6. mysqlpump
программа резервирования базы данных
mysqlpump
выполняет логические
резервные копии, производя ряд запросов SQL, которые могут быть
выполнены, чтобы воспроизвести оригинальные определения объекта базы данных и
табличные данные. Это выводит одну или более баз данных MySQL для резервного
копирования или передачи в другой SQL-сервер.
Возможности mysqlpump
:
mysqlpump
использует функции MySQL, введенные в MySQL 5.7, и таким образом
предполагает использование с MySQL 5.7 или выше.
mysqlpump
требует, по крайней мере, привилегию
SELECT для выведенных
таблиц, SHOW VIEW
для выведенных представлений,
TRIGGER для выведенных триггеров и
LOCK TABLES , если
не применяется опция
--single-transaction . Привилегия
SELECT на
системной базе данных mysql нужна, чтобы
выводить пользовательские определения. Определенные опции могли бы
потребовать других привилегий, как отмечено в описаниях опции.
Чтобы перезагрузить файл дампа, Вы должны иметь приилегии, чтобы
выполнить запросы, которые это содержит, например, CREATE
для объектов, которые созданы теми запросами.
Дамп, сделанный, используя PowerShell на Windows с выходным
перенаправлением, создает файл, у которого есть кодирование UTF-16:
shell> mysqlpump [options] > dump.sql
Но UTF-16 не разрешен как набор символов соединения (см.
раздел 11.1.4),
таким образом, файл дампа не будет загружаться правильно.
Чтобы решить проблему, используйте опцию --result-file ,
которая создает вывод в формате ASCII:
shell> mysqlpump [options] --result-file=dump.sql
Синтаксис вызова mysqlpump
По умолчанию mysqlpump
выводит все базы данных (с определенными исключениями,
отмеченными в ограничениях
mysqlpump). Чтобы определить это поведение явно, используйте
--all-databases
:
shell> mysqlpump --all-databases
Чтобы вывести единственную базу данных или определенные таблицы в пределах
той базы данных, укажите базу данных в командной строке, произвольно
сопровождаемую именами таблиц:
shell> mysqlpump db_name
shell> mysqlpump db_name tbl_name1 tbl_name2 ...
Чтобы обработать все параметры имени как имена базы данных, используйте
--databases
:
shell> mysqlpump --databases db_name1 db_name2 ...
По умолчанию mysqlpump
не выводит определения учетной записи пользователя, даже
если Вы выводите системную базу данных mysql , которая содержит
таблицы привилегий. Чтобы вывести табличное содержание привилегий
как логические определения в форме
CREATE USER и GRANT ,
используйте опцию
--users и весь дамп базы данных:
shell> mysqlpump --exclude-databases=% --users
В предыдущей команде подстановочный знак %
соответствует всем именам базы данных для
--exclude-databases .
mysqlpump
поддерживает несколько опций для включения или исключения базы данных,
таблицы, сохраненных программ и пользовательских определений.
Чтобы перезагрузить файл дампа, выполните запросы, которые
это содержит. Например, используйте
mysql:
shell> mysqlpump [options] > dump.sql
shell> mysql < dump.sql
Следующее обсуждение обеспечивает дополнительные примеры использования
mysqlpump.
Чтобы видеть список опций
mysqlpump, введите команду
mysqlpump --help
.
Обзор опций mysqlpump
mysqlpump
поддерживает следующие опции, которые могут быть определены в командной
строке или в группах [mysqlpump] и [client]
файла опции. Для информации о файлах опции, используемых программами MySQL,
см. раздел 5.2.6.
Таблица 5.13. Опции
mysqlpump
Формат | Описание
|
--add-drop-database | Добавить DROP DATABASE перед
каждым CREATE DATABASE |
--add-drop-table | Добавить DROP TABLE перед
каждым CREATE TABLE |
--add-drop-user | Добавить DROP USER перед
каждым CREATE USER |
--add-locks | Окружите каждый табличный дамп LOCK
TABLES и UNLOCK TABLES |
--all-databases | Выведите все базы данных |
--bind-address | Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--character-sets-dir | Каталог, где наборы символов установлены
|
--complete-insert | Используйте полные запросы INSERT, которые
включают имена столбцов |
--compress | Сжать всю информацию, посланную
между клиентом и сервером |
--compress-output | Выходной алгоритм сжатия |
--databases | Интерпретируйте все параметры имени как
имена базы данных |
--debug
| Вести журнал отладки |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти
и статистика центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать
|
--default-character-set | Определите набор символов по умолчанию
|
--default-parallelism | Число потоков по умолчанию
для параллельной обработки |
--defaults-extra-file | Читать файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--defer-table-indexes | Для того, чтобы перезагрузить, задержать
создание индекса до окончания загрузки строк таблицы |
--events
| События дампа от выведенных баз данных |
--exclude-databases | Базы данных, чтобы исключить из дампа
|
--exclude-events | События, чтобы исключить из дампа |
--exclude-routines | Сохраненные подпрограммы, чтобы
исключить из дампа |
--exclude-tables | Таблицы, чтобы исключить из дампа |
--exclude-triggers | Триггеры, чтобы исключить из дампа |
--exclude-users | Пользователи, чтобы исключить из дампа |
--extended-insert | Многострочный синтаксис INSERT |
--help
| Вывести сообщение справки |
--hex-blob | Выведите двоичные столбцы,
используя шестнадцатеричный формат |
--host
| Хост сервера (IP-адрес или имя) |
--include-databases | Базы данных, чтобы включать в дамп |
--include-events | События, чтобы включать в дамп |
--include-routines | Сохраненные подпрограммы, чтобы включать в дамп
|
--include-tables | Таблицы, чтобы включать в дамп |
--include-triggers | Триггеры, чтобы включать в дамп |
--include-users | Пользователи, чтобы включать в дамп |
--insert-ignore | Писать INSERT IGNORE вместо INSERT |
--log-error-file |
Добавить предупреждения и ошибки к названному файлу |
--login-path | Считайте опции пути входа в систему из .mylogin.cnf
|
--max-allowed-packet | Максимальная пакетная длина, чтобы послать в
или получить от сервера |
--net-buffer-length | Размер буфера для TCP/IP |
--no-create-db | Не писать CREATE DATABASE |
--no-create-info | Не писать CREATE TABLE, которые пересоздают
каждую выведенную таблицу |
--no-defaults | Не читать файлы опции |
--parallel-schemas | Определите обрабатывающий схему параллелизм
|
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатайте опции по умолчанию |
--protocol | Протокол соединения, чтобы использовать |
--replace
| Писать REPLACE вместо INSERT |
--result-file | Прямой вывод к данному файлу |
--routines | Выведите сохраненные подпрограммы (процедуры и
функции) от выведенных баз данных |
--secure-auth | Не посылайте пароли в сервер в
старом формате (pre-4.1) |
--set-charset | Добавить SET NAMES default_character_set в вывод
|
--single-transaction |
Дамп таблиц в пределах единственной транзакции |
--skip-definer | Опустите DEFINER и SQL SECURITY для CREATE,
создающих представления и сохраненные подпрограммы |
--skip-dump-rows | Не выводите строки таблицы |
--socket
| Для соединений с localhost файл сокета Unix |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CAs |
--ssl-capath
| Путь к каталогу, который содержит доверенные сертификаты SSL
CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM
|
--ssl-cipher
| Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl
| Путь к файлу, который содержит списки аннулирования сертификатов
|
--ssl-crlpath
| Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key
| Путь к файлу, который содержит ключ X509 в формате PEM |
--ssl-mode
| Статус безопасности соединения с сервером |
--tls-version | Протоколы для безопасных соединений |
--triggers | Дамп триггеров для каждой выведенной таблицы |
--tz-utc
| Добавить в дамп SET TIME_ZONE='+00:00' |
--user
| Имя пользователя MySQL, чтобы использовать, соединяясь с сервером
|
--users
| Вывести учетные записи пользователей |
--version
| Отобразить информаци о версии |
--watch-progress | Показать индикатор выполнения
|
mysqlpump Option Descriptions
--help ,
-?
Отобразить сообщение справки.
-
--add-drop-database
Написать DROP DATABASE
перед каждым CREATE DATABASE
.
-
--add-drop-table
Написать DROP TABLE
перед каждым CREATE TABLE .
-
--add-drop-user
Написать DROP USER перед
каждым CREATE USER .
-
--add-locks
Окружите каждый табличный дамп LOCK
TABLES и UNLOCK TABLES
. Это приводит к быстрым вставкам, когда файл дампа перезагружен. См.
раздел 9.2.2.1.
Эта опция не работает с параллелизмом, потому что
INSERT
от различных таблиц могут быть чередованы и
UNLOCK TABLES
после конца вставок для одной таблицы может снять блокировки таблиц,
для которых вставки еще есть.
--add-locks
и
--single-transaction являются взаимоисключающими.
-
--all-databases
, -A
Выведите все базы данных (с определенными исключениями, отмеченными в
ограничениях).
Это поведение по умолчанию, если ничто другое не определено явно.
--all-databases и
--databases
являются взаимоисключающими.
До MySQL 8.0 опции
--routines
и --events
для mysqldump
и mysqlpump
не требовались для включения сохраненных подпрограмм и событий,
используя
--all-databases . Дамп включает системную базу данных
mysql и поэтому также таблицы
mysql.proc и mysql.event , содержащие сохраненные
подпрограммы и определения событий. С MySQL 8.0 таблицы
the mysql.event и mysql.proc не применяются.
Определения для соответствующих объектов сохранены в таблицах словаря данных,
но те таблицы не выведены. Чтобы включать сохраненные подпрограммы и события
в дамп, сделанном, используя
--all-databases
, используйте
--routines и
--events .
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать, который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--character-sets-dir=path
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--complete-insert
Писать полный INSERT , который
включает имена столбцов.
-
--compress ,
-C
Сжать всю информацию, посланную между клиентом и сервером.
-
--compress-output=algorithm
По умолчанию mysqlpump
не сжимает вывод. Эта опция определяет выходное сжатие,
используя указанный алгоритм. Разрешенные алгоритмы
LZ4 и ZLIB .
Чтобы разжать сжатый вывод, у Вас должна быть соответствующая утилита.
Если системные команды lz4 и
openssl zlib недоступны, дистрибутивы MySQL
включают lz4_decompress
и
zlib_decompress, которые могут использоваться, чтобы
распаковать вывод mysqlpump
, который был сжат, используя
--compress-output=LZ4 и
--compress-output=ZLIB , см. разделы
5.8.1 и
5.8.5.
-
--databases
, -B
Обычно mysqlpump
обрабатывает первый параметр имени в командной строке как имя
базы данных и любые последующие имена как имена таблиц. С этой опцией это
обрабатывает все параметры имени как имена баз данных.
CREATE DATABASE
включены в вывод перед каждой новой базой данных.
--all-databases и
--databases
являются взаимоисключающими.
-
--debug[=
debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичнпя строка
debug_options
d:t:o,file_name .
Значение по умолчанию d:t:O,/tmp/mysqlpump.trace .
-
--debug-check
Напечатайте некоторую информацию об отладке, когда программа выходит.
-
--debug-info
, -T
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-auth=
plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
See раздел 7.3.9.
-
--default-character-set=charset_name
Использовать charset_name
как набор символов по умолчанию. См.
раздел 11.5.
Если никакой набор символов не определен,
mysqlpump
будет использовать utf8 .
-
--default-parallelism=N
Число потоков по умолчанию для каждой параллельной очереди обработки.
Значение по умолчанию 2.
Опция
--parallel-schemas также затрагивает параллелизм и может
использоваться, чтобы переопределить число потоков по умолчанию.
С
--default-parallelism=0 и без
--parallel-schemas
mysqlpump работает как однопоточный процесс
и не создает очередей.
С включенным параллелизмом вывод от различных баз данных
может быть чередованным.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как
относительный путь, а не полный.
-
--defaults-file=
file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
Исключение: Даже с опцией
--defaults-file
программы клиента читают .mylogin.cnf .
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqlpump
обычно читает группы [client] и [mysqlpump] . Если
задана опция
--defaults-group-suffix=_other ,
mysqlpump
также читает группы [client_other] и
[mysqlpump_other] .
-
--defer-table-indexes
В выводе дампа задержать создание индекса для каждой таблицы, пока ее
строки не загружены. Это работает на всех механизмах хранения, но на
InnoDB применяется только для вторичных индексов.
Эта опция включена по умолчанию, примените
--skip-defer-table-indexes , чтобы отключить это.
-
--events
Включайте события Event Scheduler для выведенных баз данных в выводе.
Дамп событий требует привилегии
EVENT для базы данных.
Вывод, произведенный при использовании
--events ,
содержит CREATE EVENT ,
чтобы создать события.
Эта опция включена по умолчанию, примените для отключения
--skip-events
.
-
--exclude-databases=db_list
Не выводите базы данных в db_list ,
который является списком из разделенных запятой одного или более
имен базы данных. Многократные случаи этой опции являются совокупными.
-
--exclude-events=event_list
Не выводите события в event_list ,
который является списком из разделенных запятой одного или более
имен событий. Многократные случаи этой опции являются совокупными.
-
--exclude-routines=routine_list
Не выводите сохраненные подпрограммы в routine_list ,
который является списком из разделенных запятой одного или более
имен сохраненных подпрограмм. Многократные случаи этой
опции являются совокупными.
-
--exclude-tables=table_list
Не выводите таблицы в table_list , который является
списком из разделенных запятой одного или более имен таблиц.
Многократные случаи этой опции являются совокупными.
-
--exclude-triggers=trigger_list
Не выводите триггеры trigger_list ,
который является списком из разделенных запятой одного или
более имен триггеров.
Многократные случаи этой опции являются совокупными.
-
--exclude-users=user_list
Не выводите учетные записи пользователя в user_list ,
который является списком из разделенных запятой одного или
более имен учетной записи.
Многократные случаи этой опции являются совокупными.
-
--extended-insert=N
Писать INSERT , используя
многострочный синтаксис, который включает несколько списков
VALUES . Это приводит к меньшему файлу дампа и убыстряет вставки,
когда файл перезагружен.
Значение опции указывает на число строк, которое включать в каждый
INSERT .
Значение по умолчанию 250. Значение 1 производит отдельный
INSERT на строку таблицы.
-
--hex-blob
Выведите двоичные столбцы, используя шестнадцатеричный формат (например,
'abc' будет 0x616263 ).
Затронутые типы данных:
BINARY ,
VARBINARY , все
BLOB и
BIT .
-
--host=host_name ,
-h host_name
Данные в дамп от сервера MySQL на данном хосте.
-
--include-databases=db_list
Выведите базы данных в db_list ,
который является списком из разделенных запятой одного или более имен базы
данных. Дамп включает все объекты в названные базы данных.
Многократные случаи этой опции являются совокупными.
-
--include-events=event_list
Выведите события в event_list ,
который является списком из разделенных запятой одного или более имен
событий. Многократные случаи этой опции являются совокупными.
-
--include-routines=routine_list
Выведите сохраненные подпрограммы в routine_list ,
который является списком из разделенных запятой одного или более имен
сохраненных подпрограмм. Многократные случаи этой опции являются совокупными.
-
--include-tables=table_list
Выведите таблицы в table_list ,
который является списком из разделенных запятой одного или
более имен таблиц. Многократные случаи этой опции являются совокупными.
-
--include-triggers=trigger_list
Выведите триггеры в trigger_list ,
который является списком из разделенных запятой одного или
более имен триггеров. Многократные случаи этой опции являются совокупными.
-
--include-users=user_list
Выведите учетные записи пользователя в user_list ,
который является списком из разделенных запятой одного или
более имен пользователя. Многократные случаи этой опции являются совокупными.
-
--insert-ignore
Писать INSERT IGNORE вместо
INSERT .
-
--log-error-file=file_name
Журналировать предупреждения и ошибки, прилагая их к названному файлу.
Если эта опция не дана,
mysqlpump пишет предупреждения и ошибки на
стандартный вывод ошибок.
-
--login-path=name
Считайте опции из названного пути входа в систему в
.mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor, см.
раздел 5.6.7.
-
--max-allowed-packet=N
Максимальный размер буфера для коммуникации клиент-сервер.
Значение по умолчанию составляет 24 МБ, максимум 1GB.
-
--net-buffer-length=N
Начальный размер буфера для коммуникации клиент-сервер.
Создавая многострочный INSERT
(как с
--extended-insert ),
mysqlpump создает строки до
N байтов в длину. Если Вы используете эту опцию, чтобы
увеличить значение, гарантируйте, что у системной переменной
net_buffer_length
сервера MySQL есть, по крайней мере, такое же значение.
-
--no-create-db
Блокировать CREATE DATABASE
, которые могли бы иначе быть включены в вывод.
-
--no-create-info , -t
Не писать CREATE TABLE ,
которые составляют каждую выведенную таблицу.
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций от файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение: если есть файл .mylogin.cnf , он
считан во всех случаях. Это разрешает паролям быть определенными более
безопасным способом, чем в командной строке, даже когда используется
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см.
раздел 5.6.7.
-
--parallel-schemas=[N :]db_list
Создайте очередь для того, чтобы обработать базы данных в
db_list , который является списком разделенных запятой
из одного или более имен базы данных. Если дано N ,
очередь использует N потоков.
Если N нет,
--default-parallelism определяет число потоков в очереди.
Многократные случаи этой опции создают многократные очереди.
mysqlpump
также создает очередь по умолчанию, чтобы использовать для баз данных, не
названных в любой
--parallel-schemas , и для дампа пользовательских
определений, если опции команды выбирают их.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), Вы
не должны иметь пробелы
между опцией и паролем. Если Вы опускаете password
после --password или -p в командной строке,
mysqlpump
спросит его явно.
Определение пароля на командной строке нужно считать опасным. См.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если опция
--default-auth
используется, чтобы определить плагин аутентификации, но
mysqlpump
не находит его. См.
раздел 7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения применят не тот
протокол, см. раздел 5.2.2.
-
--replace
Писать REPLACE вместо
INSERT .
-
--result-file=file_name
Прямой вывод к названному файлу. Файл результата создается и его
предыдущее содержание перезаписывается, даже если ошибка
происходит, производя дамп.
Эта опция должна использоваться в Windows, чтобы предотвратить
преобразование \n в \r\n carriage return/newline.
-
--routines
Включайте сохраненные подпрограммы (процедуры и функции) для выведенных
баз данных в вывод. Эта опция требует глобальной привилегии
SELECT .
Вывод, произведенный при использовании
--routines
содержит CREATE PROCEDURE
и CREATE FUNCTION , чтобы
создать сохраненные подпрограммы.
Эта опция включена по умолчанию, для выклчения надо использовать
--skip-routines
.
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1)
Эта опция устарела. Это всегда включается и попытка отключить
(--skip-secure-auth
,
--secure-auth=0
) сразу производит ошибку.
-
--set-charset
Писать в вывод SET NAMES
default_character_set .
Эта опция включена по умолчанию. Чтобы отключить это и подавить запись
SET NAMES , примените
--skip-set-charset
.
-
--single-transaction
Эта опция устанавливает операционный режим изоляции в
REPEATABLE READ
и посылает START TRANSACTION
серверу прежде, чем вывести данные. Это полезно только с транзакционными
таблицами, например, InnoDB , потому что тогда это выводит
последовательное состояние базы данных в то время, когда
START TRANSACTION
был запущен, не блокируя приложений.
Используя эту опцию, Вы должны иметь в виду, что только
InnoDB выведены в последовательном состоянии. Например, любые
таблицы MyISAM или MEMORY
выведенные, используя эту опцию, могут все еще изменить состояние.
В то время, как
--single-transaction в процессе, чтобы гарантировать допустимый
файл дампа (правильное табличное содержание и двоичные координаты журнала),
никакое другое соединение не должно использовать следующие запросы:
ALTER TABLE ,
CREATE TABLE ,
DROP TABLE ,
RENAME TABLE ,
TRUNCATE TABLE .
Последовательное чтение не изолировано от этих запросов, таким образом,
использование их на таблице, которая будет выведена, может вызвать
SELECT , вызванный
mysqlpump,
чтобы получить табличное содержание, рискующий получить
неправильное содержание или потерпеть неудачу.
--add-locks
и
--single-transaction являются взаимоисключающими.
-
--skip-definer
Пропустить DEFINER и SQL SECURITY в
CREATE для представлений и сохраненных программ. Файл дампа,
когда перезагружен, создает объекты, которые используют значение по умолчанию
DEFINER и SQL SECURITY , см.
раздел 21.6.
-
--skip-dump-rows , -d
Не выводите строки таблицы.
-
--socket={file_name |pipe_name }
, -S {file_name |pipe_name
}
Для соединений с localhost файл сокета Unix.
В Windows имя именованного канала.
--ssl*
Опции, которые начинаются c
--ssl ,
определяют, соединиться ли с сервером, используя SSL и указывают, где найти
ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--tls-version=protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений.
Значение: список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL. Для деталей
см. раздел 7.4.3
.
-
--triggers
Включайте триггеры для каждой выведенной таблицы в выводе.
Эта опция включена по умолчанию, для отключения надо использовать
--skip-triggers
.
-
--tz-utc
Эта опция включает столбцы TIMESTAMP
, которые будут выведены и перезагружены между серверами в
различных часовых поясах.
mysqlpump устанавливает свою зону времени соединения в
UTC и добавляет SET TIME_ZONE='+00:00' к файлу дампа. Без этой
опции столбцы TIMESTAMP
выведены и перезагружены в часовых поясах, местных для источника и целевого
сервера, что может заставить значения изменяться, если серверы находятся в
различных часовых поясах.
--tz-utc также защищает от изменений из-за летнего времени.
Эта опция включена по умолчанию, для выключения используйте
--skip-tz-utc
.
-
--user=user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
-
--users
Выводить учетные записи пользователя как логические определения в форме
CREATE USER и
GRANT .
Пользовательские определения сохранены в таблицах системной базе данных
mysql . По умолчанию
mysqlpump
не включает эти таблицы в дамп базы данных mysql .
Чтобы вывести содержание таблиц как логические определения, используйте
--users и
блокируйте весь дамп базы данных:
shell> mysqlpump --exclude-databases=% --users
-
--version ,
-V
Отобразить информацию о версии.
-
--watch-progress
Периодически выводите на экран индикатор хода выполнения, который
предоставляет информацию о завершенном и общем количестве таблиц,
строк и других объектов.
Эта опция включена по умолчанию, для отключения применяется
--skip-watch-progress .
Выбор объектов mysqlpump
mysqlpump
имеет ряд опций включения и исключения, которые позволяют фильтровать
несколько типов объектоа и обеспечивают гибкое управление тем,
которые объекты вывести:
Любая опция включения или исключения может быть дана многократно.
Эффект является совокупным. Порядок этих опций не имеет значения.
Значение каждой опции включения и исключения это
список разделенных запятой названий соответствующего типа объекта. Например:
--exclude-databases=test,world
--include-tables=customer,invoice
Подстановочные символы разрешены в названиях объекта:
Например,
--include-tables=t%,__tmp соответствует всем именам таблиц,
которые начинаются на t и всем пятисимвольным именам таблиц,
которые кончаются строго на tmp .
Для пользователей имя, определенное без части хоста, интерпретируется с
подразумеваемым хостом % . Например, u1 и
u1@% аналогичны. Это та же самая эквивалентность, которая
применяется в MySQL вообще (см.
раздел 7.2.3).
Опции включения и исключения взаимодействуют следующим образом:
По умолчанию, без опций включения или исключения,
mysqlpump
выводит все базы данных (с определенными исключениями, отмеченными в
ограничениях mysqlpump.
- Если опции включения даны в отсутствие опций исключения, только объекты,
названные как включенные, выведены.
- Если опции исключения даны в отсутствие опций включения, все объекты
выведены, кроме названных как исключенные.
- Если есть опции включения и исключения, все объекты, названные
исключенными и не названные как включенные, не выведены.
Все другие объекты выведены.
Если многократные базы данных выводятся, возможно назвать таблицы,
триггеры и сохраненные подпрограммы в определенной базе данных, квалифицируя
названия объекта с именем базы данных. Следующая команда выводит базы данных
db1 и db2 , но исключает таблицы
db1.t1 и db2.t2 :
shell> mysqlpump --include-databases=db1,db2 --exclude-tables=db1.t1,db2.t2
Следующие опции обеспечивают альтернативные способы определить, которые
базы данных вывести:
Параллельная обработка mysqlpump
mysqlpump
может использовать параллелизм, чтобы достигнуть параллельной обработки.
Вы можете выбрать параллелизм между базами данных (чтобы вывести многие базы
данных одновременно) и в пределах баз данных (чтобы вывести многие объекты от
данной базы данных одновременно).
По умолчанию mysqlpump
настраивает одну очередь с двумя потоками. Вы можете
создать дополнительные очереди и управлять числом потоков, назначенных
каждой, включая очередь по умолчанию:
--default-parallelism=N
определяет число потоков по умолчанию, используемых для каждой очереди.
В отсутствие этой опции N = 2.
Очередь по умолчанию всегда использует число потоков по умолчанию.
Дополнительные очереди используют число потоков по умолчанию, если Вы
не определяете иное.
--parallel-schemas=[N :]db_list
настраивает очередь обработки для дампа баз данных, названных в
db_list и произвольно определяет, сколько потоков
очередь использует. db_list это
список разделенных запятой значений имен базы данных. Если параметр опции
начинается с N : , очередь задействует
N потоков. Иначе
--default-parallelism определяет число потоков очереди.
Многократные случаи
--parallel-schemas создают многократные очереди.
Имена в списке базы данных могут содержать те же самые подстановочные
символы % и _ , поддержанные для того,
чтобы фильтровать опции.
mysqlpump
использует очередь по умолчанию для того, чтобы обработать любые базы
данных, не названные явно с
--parallel-schemas , и для дампа пользовательских определений, если
опции команды выбирают их.
Вообще, с многократными очередями,
mysqlpump использует параллелизм между наборами
баз данных, обработанных очередями, чтобы вывести многие базы данных
одновременно. Для очереди, которая использует много потоков,
mysqlpump
использует параллелизм в пределах баз данных, чтобы вывести многие объекты от
данной базы данных одновременно. Исключения могут произойти, например,
mysqlpump
может заблокировать очереди в то время, как он получает из сервера списки
объектов в базах данных.
С включенным параллелизмом вывод различных баз данных может быть
чередованным. Например, INSERT
от многих таблиц, выведенных параллельно, могут быть чередованы, запросы не
написаны ни в каком особом порядке. Это не затрагивает перезагрузку, потому
что выведенные запросы квалифицируют названия объекта с именами базы данных
или предваряются USE как требуется.
Степень детализации для параллелизма: единственный объект базы данных.
Например, единственная таблица не может быть выведена,
используя много потоков.
Примеры:
shell> mysqlpump --parallel-schemas=db1,db2 --parallel-schemas=db3
mysqlpump
настраивает очередь, чтобы обработать
db1 и db2 , другую очередь, чтобы обработать
db3 и очередь по умолчанию, чтобы обработать все другие базы
данных. Все очереди используют по два потока.
shell> mysqlpump --parallel-schemas=db1,db2 --parallel-schemas=db3
--default-parallelism=4
Это то же самое, как предыдущий пример за исключением того, что все очереди
используют по четыре потока.
shell> mysqlpump --parallel-schemas=5:db1,db2 --parallel-schemas=3:db3
Очередь для db1 и db2 применяет
пять потоков, очередь для db3 три потока, а очередь по умолчанию
использует значение по умолчанию из двух потоков.
Как особый случай, с
--default-parallelism=0 и без
--parallel-schemas
mysqlpump
работает как однопоточный процесс и не создает очередей.
Ограничения mysqlpump
mysqlpump
не выводит performance_schema ,
ndbinfo или sys по умолчанию. Чтобы вывести любую
из них, назовите их явно в командной строке. Вы можете также назвать их с
--databases
или
--include-databases .
mysqlpump
вообще никак не выводит INFORMATION_SCHEMA .
mysqlpump
выводит учетные записи пользователя в логической форме
using CREATE USER и
GRANT (например, когда Вы
используете
--include-users или
--users ).
Поэтому дампы системной базы данных mysql по умолчанию не
включают таблицы привилегий, которые содержат пользовательские определения:
user , db , tables_priv ,
columns_priv , procs_priv или
proxies_priv . Чтобы вывести любую из этих таблиц, назовите
mysql с именами таблиц:
shell> mysqlpump mysql user db ...
5.5.7. mysqlshow
Показ информации о базе данных, таблице и столбце
mysqlshow
может использоваться, чтобы быстро увидеть, какие базы данных
существуют, их таблицы, столбцы таблиц или индексы.
mysqlshow
обеспечивает интерфейс командной строки к нескольким SQL-запросам
SHOW , см.
раздел 14.7.5.
Та же самая информация может быть получена при использовании тех запросов
непосредственно. Например, Вы можете дать их из
mysql.
Вызов mysqlshow
:
shell> mysqlshow [options ] [db_name
[tbl_name [col_name ]]]
Вывод выводит на экран только названия тех баз данных, таблиц или
столбцов, для которых у Вас есть хоть какие-то привилегии.
Если последний параметр содержит подстановочные символы SQL или оболочки
(* , ? , % или _ ),
только те имена, которые являются соответствующими подстановочным знаком,
показывают. Если имя базы данных содержит какие-либо подчеркивания,
их нужно экранировать наклонной чертой влево (некоторые оболочки Unix требуют
две), чтобы получить список надлежащих таблиц или столбцов. * и
? преобразованы в SQL % и _ .
Это могло бы вызвать некоторый беспорядок, когда Вы пытаетесь вывести на
экран столбцы для таблицы с _ в имени, потому что в этом случае
mysqlshow
показывает Вам только имена таблиц, которые соответствуют образцу. Это легко
установлено, добавляя дополнительный %
последним в командной строке как отдельный параметр.
mysqlshow
поддерживает следующие опции, которые могут быть определены в командной
строке или в группах [mysqlshow] и [client]
файла опции. Для информации о файлах опции, используемых программами MySQL,
см. раздел 5.2.6.
Таблица 5.14. Опции
mysqlshow
Формат | Описание
|
--bind-address | Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--compress | Сжать всю информацию, посланную
между клиентом и сервером |
--count
| Покажите число строк в таблице |
--debug
| Писать журнал отладки |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти и статистика
центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать
|
--default-character-set | Определите набор символов по умолчанию
|
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--enable-cleartext-plugin |
Включите плагин аутентификации открытого текста |
--help
| Показать справочное сообщение |
--host
| Соединитесь с сервером MySQL на данном хосте |
--keys
| Покажите индексы таблицы |
--login-path | Читать опции пути входа в систему из .mylogin.cnf
|
--no-defaults | Не читать файлы опции |
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--pipe
| В Windows соединитесь с сервером, используя именованный канал
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатайте опции по умолчанию |
--protocol | Протокол для соединения |
--secure-auth | Не посылайте пароли серверу в
старом формате (pre-4.1) |
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений совместно используемой памяти |
--show-table-type | Покажите столбец, указывающий табличный тип
|
--socket
| Для соединений с localhost файл сокета Unix |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath
| Путь к каталогу, который содержит доверенные сертификаты SSL
CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM
|
--ssl-cipher
| Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl
| Путь к файлу, который содержит списки аннулирования сертификатов
|
--ssl-crlpath
| Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key
| Путь к файлу, который содержит ключ X509 в формате PEM |
--ssl-mode
| Статус безопасности соединения с сервером |
--status
| Выведите на экран дополнительную информацию о каждой таблице
|
--tls-version | Протоколы для безопасных соединений |
--user
| Имя пользователя MySQL, чтобы использовать, соединяясь с сервером
|
--verbose | Подробный режим вывода |
--version | Показать информацию о версии |
--help ,
-?
Отобразить текст справки.
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать, который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--compress ,
-C
Сжать всю информацию, посланную между клиентом и сервером.
-
--count
Покажите число строк в таблице. Это может быть медленным для таблиц
не-MyISAM .
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка
debug_options
d:t:o,file_name .
Значение по умолчанию d:t:o .
-
--debug-check
Напечатайте некоторую информацию об отладке, когда программа выходит.
-
--debug-info
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-character-set=charset_name
Использовать charset_name как набор символов
по умолчанию. См. раздел 11.5.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
See раздел 7.3.9.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
Исключение: Даже с опцией
--defaults-file
программы клиента читают .mylogin.cnf .
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqlshow
обычно читает группы [client] и [mysqlshow] . Если
задана опция
--defaults-group-suffix=_other ,
mysqlshow
также читает группы [client_other] и
[mysqlshow_other] .
-
--enable-cleartext-plugin
Включите плагин аутентификации открытого текста
mysql_clear_password , см.
раздел 7.5.1.4.
-
--host=host_name ,
-h host_name
Соединитесь с сервером MySQL на данном хосте.
-
--keys ,
-k
Покажите индексы таблицы.
-
--login-path=name
Читать опции из названного пути входа в систему в
.mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см. раздел
5.6.7.
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение то, что файл .mylogin.cnf , если существует, считан
во всех случаях. Это разрешает паролям быть определенными более безопасным
способом, чем в командной строке, даже когда есть опция
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см. раздел
5.6.7.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы
используете короткую форму опции (-p ), Вы
не должны иметь пробелы
между опцией и паролем. Если Вы опускаете password
после --password
или -p в командной строке,
mysqlshow
его спросит явно.
Определение пароля в командной строке нужно считать опасным. См.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать задавать
пароль в командной строке.
-
--pipe ,
-W
В Windows соединитесь с сервером, используя именованный канал.
Эта опция применяется, только если сервер поддерживает
соединения именованного канала.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
--default-auth
используется, чтобы определить плагин аутентификации, но
mysqlshow
его не нашел, см. раздел
7.3.9.
-
--port=
port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения используют
не тот протокол, см. раздел 5.2.2.
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1).
Эта опция устарела. Это всегда включается и попытка отключения
(--skip-secure-auth
,
--secure-auth=0
) немедлено вызовет ошибку.
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений, сделанных,
используя совместно используемую память для локального сервера.
Значение по умолчанию MYSQL . Имя совместно используемой памяти
является чувствительным к регистру.
Сервер должен быть запущен с опцией
--shared-memory
.
-
--show-table-type , -t
Покажите столбец, указывающий на табличный тип, как в
SHOW FULL TABLES .
Тип BASE TABLE или VIEW .
-
--socket=
path ,
-S path
Для соединений с localhost файл сокета Unix.
В Windows название именованного канала.
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL и указывают, где найти
ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--status ,
-i
Выведите на экран дополнительную информацию о каждой таблице.
-
--tls-version=protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений.
Значение: список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL. Для деталей
см. раздел 7.4.3
.
-
--user=
user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
-
--verbose ,
-v
Подробный режим. Напечатайте больше информации о том, что делает
программа. Эта опция может использоваться многократно, чтобы
увеличить количество информации.
-
--version ,
-V
Показать информацию о версии.
5.5.8. mysqlslap
клиент эмуляции загрузки
mysqlslap
это программа диагностирования, разработанная, чтобы подражать загрузке
клиента для сервера MySQL и сообщить о синхронизации каждого этапа.
Это работает, как будто много клиентов получают доступ к серверу.
Вызов mysqlslap
:
shell> mysqlslap [options ]
Некоторые опции, например,
--create или
--query , позволяют Вам определить строку, содержащую запрос
SQL или файл, содержащий запросы. Если Вы определяете файл, по умолчанию это
должно содержать один запрос на строку. Таким образом, неявный разделитель
запросов это символ новой строки. Примените опцию
--delimiter
, чтобы определить иной разделитель, который позволяет Вам определить
запросы, которые охватывают многократные строки или помещают многократные
запросы в одной строке. Вы не можете включать комментарии в файл,
mysqlslap
не понимает их.
mysqlslap
работает в три шага:
Создайте схему, таблицу, и произвольно любые сохраненные
программы или данные, чтобы использовать для теста. Этот этап использует
единственное соединение клиента.
- Выполните нагрузочный тест. Этот этап может использовать
много соединений клиента.
- Удалите таблицу, если определена.
Этот этап использует единственное соединение клиента.
Пример:
Создайте таблицу и выполните запросы SQL с 50 запрашивающими клиентами
и 200 выбирающими для каждого запроса (введите команду в одну строку):
mysqlslap --delimiter=";"
--create="CREATE TABLE a (b int);INSERT INTO a VALUES (23)"
--query="SELECT * FROM a" --concurrency=50 --iterations=200
Пусть mysqlslap
создаст запрос SQL с таблицей из двух столбцов
INT и трех
VARCHAR .
Используйте пять клиентов, запрашивающих 20 раз каждый.
Не составляйте таблицу и не вставляйте данные (то есть, используйте схему
предыдущего теста и данные):
mysqlslap --concurrency=5 --iterations=20
--number-int-cols=2 --number-char-cols=3 --auto-generate-sql
Скажите программе загружать создавать вставлять и запрашивать запросы SQL от
указанных файлов, где create.sql имеет
много табличные запросы создания, разграниченные ';'
и многократные запросы вставки, разграниченные ';' . Файл в
--query разграничивает запросы ';' .
Выполните все запросы загрузки, затем выполните все запросы в файле запроса с
пятью клиентами (пять раз каждый):
mysqlslap --concurrency=5 --iterations=5
--query=query.sql
--create=create.sql --delimiter=";"
mysqlslap
поддерживает следующие опции, которые могут быть определены в командной
строке или в группах [mysqlslap] и [client]
файла опции. Для информации о файлах опции, используемых программами MySQL,
см. раздел 5.2.6.
Таблица 5.15. Опции mysqlslap
Формат | Описание
|
--auto-generate-sql | Произведите запросы SQL автоматически, когда
они не даны в файлах или опциях команды |
--auto-generate-sql-add-autoincrement |
Добавить столбец AUTO_INCREMENT к автоматически произведенным таблицам
|
--auto-generate-sql-execute-number |
Определите сколько запросов произвести автоматически |
--auto-generate-sql-guid-primary | Добавьте основанный на GUID
первичный ключ к автоматически произведенным таблицам |
--auto-generate-sql-load-type |
Определите испытательный тип загрузки |
--auto-generate-sql-secondary-indexes |
Определите, сколько вторичных индексов добавить к
автоматически произведенным таблицам |
--auto-generate-sql-unique-query-number |
Сколько различных запросов произвести для автоматических тестов |
--auto-generate-sql-unique-write-number |
Сколько различных запросов произвести для --auto-generate-sql-write-number
|
--auto-generate-sql-write-number |
Сколько строк вставлять в каждом потоке |
--commit
| Сколько запросов выполнить перед commit |
--compress | Сжать всю информацию, посланную
между клиентом и сервером |
--concurrency | Число клиентов, чтобы моделировать, делая SELECT
|
--create
| Файл или строка, содержащая запрос, чтобы использовать для того,
чтобы составить таблицу |
--create-schema | Схема, в которой можно выполнить тесты |
--csv |
Произведите вывод в отделенном запятыми формате значений |
--debug
| Писать журнал отладки |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти и статистика
центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать
|
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--delimiter | Разделитель, чтобы использовать в запросах SQL
|
--detach
| Отделить (закрыть и вновь открыть) каждое соединение
после каждых N запросов |
--enable-cleartext-plugin |
Включите плагин аутентификации открытого текста |
--engine
| Механизм хранения для того, чтобы составить таблицу |
--help
| Отобразить сообщение справки |
--host
| Соединитесь с сервером MySQL на данном хосте |
--iterations | Сколько раз выполнить тесты |
--login-path | Считайте опции пути входа в систему из .mylogin.cnf
|
--no-defaults | Не читайте файлы опции |
--no-drop | Не удалять любую схему, созданную во время испытания
|
--number-char-cols | Число столбцов VARCHAR, чтобы использовать,
если определена --auto-generate-sql |
--number-int-cols | Число столбцов INT, чтобы использовать,
если определена --auto-generate-sql |
--number-of-queries | Ограничьте каждого клиента приблизительно
этим числом запросов |
--only-print | Не соединяйтесь с базами данных.
mysqlslap только печатает то, что он сделал бы |
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--pipe
| В Windows соединитесь с сервером, используя именованный канал
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--post-query | Файл или строка, содержащая запрос, чтобы
выполнить после тестов |
--post-system | Строка, чтобы выполнить через system() после тестов
|
--pre-query | Файл или строка, содержащая запрос, чтобы выполнить
прежде, чем выполнить тесты |
--pre-system | Строка, чтобы выполнить через system() до тестов
|
--print-defaults | Напечатайте опции по умолчанию |
--protocol | Протокол соединения, чтобы использовать |
--query
| Файл или строка, содержащая запрос SELECT, чтобы использовать для
того, чтобы получить данные |
--secure-auth | Не посылайте пароли серверу в
старом формате (pre-4.1) |
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений |
--silent
| Тихий режим |
--socket | Для соединений с localhost файл сокета Unix |
--sql-mode | Задать режим SQL для сеанса клиента |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath
| Путь к каталогу, который содержит доверенные сертификаты
SSL CA в формате PEM |
--ssl-cert
| Путь к файлу, который содержит сертификат X509 в формате PEM
|
--ssl-cipher
| Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl
| Путь к файлу, который содержит списки аннулирования сертификатов
|
--ssl-crlpath
| Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key | Путь к файлу, который содержит ключ X509 в формате PEM
|
--ssl-mode | Статус безопасности соединения с сервером |
--tls-version | Протоколы для безопасных соединений |
--user | Имя пользователя MySQL, чтобы
использовать, соединяясь с сервером |
--verbose | Подробный режим |
--version | Отобразить информацию о версии
|
--help ,
-?
Отобразить сообщение справки.
-
--auto-generate-sql , -a
Произведите запросы SQL автоматически, когда они не даны
в файлах или опциях команды.
-
--auto-generate-sql-add-autoincrement
Добавить столбец AUTO_INCREMENT
к автоматически произведенным таблицам.
-
--auto-generate-sql-execute-number=N
Определите сколько запросов произвести автоматически.
-
--auto-generate-sql-guid-primary
Добавьте основанный на GUID первичный ключ к
автоматически произведенным таблицам.
-
--auto-generate-sql-load-type=type
Определите испытательный тип загрузки. Допустимые значения:
read (просмотр таблицы),
write (вставка в таблицы),
key (считывание первичных ключей),
update (обновление первичных ключей) или
mixed (половина вставки, половина просмотр).
Значение по умолчанию mixed .
-
--auto-generate-sql-secondary-indexes=N
Определите, сколько вторичных индексов добавить к автоматически
произведенным таблицам. По умолчанию ни один не добавлен.
-
--auto-generate-sql-unique-query-number=N
Сколько различных запросов произвести для автоматических тестов.
Например, если Вы выполняете тест key , который выполняет
1000 выборок, Вы можете использовать эту опцию со значением 1000, чтобы
выполнить 1000 уникальных запросов, или со значением 50, чтобы сделать
разных выборок. Значение по умолчанию 10.
-
--auto-generate-sql-unique-write-number=N
Какое количествл различных запросов произвести для
--auto-generate-sql-write-number .
Значение по умолчанию 10.
-
--auto-generate-sql-write-number=N
Сколько строк вставлять. Значение по умолчанию 100.
-
--commit=N
Сколько запросов выполнить перед commit.
Значение по умолчанию 0 (no commit).
-
--compress , -C
Сжать всю информацию, посланную между клиентом и сервером.
-
--concurrency=N ,
-c N
Число параллельных клиентов.
-
--create=value
Файл или строка, содержащая запрос, чтобы использовать для того,
чтобы составить таблицу.
-
--create-schema=value
Схема, в которой можно выполнить тесты.
Если
--auto-generate-sql тоже есть,
mysqlslap удаляет схему в конце испытания.
Чтобы избежать этого, используйте
--no-drop
.
--csv[=file_name ]
Произведите вывод в отделенном запятыми формате значений.
Вывод идет в названный файл, или в стандартный вывод, если никакой
файл не дан.
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка
debug_options :
d:t:o,file_name .
Значение по умолчанию d:t:o,/tmp/mysqlslap.trace .
-
--debug-check
Напечатайте некоторую информацию об отладке, когда программа выходит.
-
--debug-info , -T
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
раздел 7.3.9.
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога, если дано как относительный
путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
Исключение: Даже с опцией
--defaults-file
программы клиента читают .mylogin.cnf .
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqlslap
обычно читает группы [client] и [mysqlslap] . Если
есть опция
--defaults-group-suffix=_other ,
mysqlslap
также читает группы [client_other] и
[mysqlslap_other] .
-
--delimiter=str ,
-F str
Разделитель, чтобы использовать в запросах SQL, поставляемых в файлах
или опциях команды.
-
--detach=N
Закрыть и переоткрыть каждое соединение после каждых
N запросов. Значение по умолчанию 0
(соединения не отделены).
-
--enable-cleartext-plugin
Включите плагин аутентификации открытого текста
mysql_clear_password , см.
раздел 7.5.1.4.
-
--engine=
engine_name ,
-e engine_name
Механизм хранения, чтобы использовать для того, чтобы составить таблицы.
-
--host=
host_name ,
-h host_name
Соединитесь с сервером MySQL на данном хосте.
-
--iterations=
N , -i N
Сколько раз выполнить тесты.
-
--login-path=
name
Читать опции из названного пути входа в систему в
.mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см. раздел
5.6.7.
-
--no-drop
Не удалять любую схему, которую создали во время испытания.
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций из файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение то, что файл .mylogin.cnf , если есть,
считан во всех случаях. Это разрешает паролям быть определенными более
безопасным способом, чем в командной строке, даже когда задана опция
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см. раздел
5.6.7.
-
--number-char-cols=N ,
-x N
Число столбцов VARCHAR , чтобы
использовать, если задана
--auto-generate-sql .
-
--number-int-cols=N ,
-y N
Число столбцов INT ,
чтобы использовать, если задана
--auto-generate-sql .
-
--number-of-queries=N
Ограничьте каждого клиента приблизительно этим числом запросов.
Подсчет запросов принимает во внимание разделитель запроса. Например, если Вы
вызываете mysqlslap
, разделитель ; признан так, чтобы каждый случай
запроса представил количество в виде строки как два запроса.
В результате вставлены 5 строк (не 10).
shell> mysqlslap --delimiter=";" --number-of-queries=10
--query="use test;insert into t values(null)"
-
--only-print
Не соединяйтесь с базами данных.
mysqlslap только печатает то, что он сделал бы.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), Вы
не можете иметь пробелы между опцией и паролем.
Если Вы опускаете password после
--password
или -p в командной строке,
mysqlslap
запросит пароль явно.
Определение пароля в командной строке нужно считать опасным. См.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--pipe ,
-W
В Windows соединитесь с сервером, используя именованный канал.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
--default-auth
задана, чтобы определить плагин аутентификации, но
mysqlslap
его не нашел, см. раздел
7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для соединения.
-
--post-query=value
Файл или строка, содержащая запрос, чтобы выполнить после тестов.
Это выполнение не посчитано в целях синхронизации.
-
--post-system=str
Строка, чтобы выполнить с использованием system()
после того, как тесты завершились. Это выполнение не
посчитано в целях синхронизации.
-
--pre-query=value
Файл или строка, содержащая запрос, чтобы выполнить прежде, чем выполнить
тесты. Это выполнение не посчитано в целях синхронизации.
-
--pre-system=str
Строка, чтобы выполнить с использованием system() прежде, чем
выполнить тесты. Это выполнение не посчитано в целях синхронизации.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать для того, чтобы соединиться с
сервером. Полезно, когда другие параметры соединения заставляли бы применить
не тот протокол. См. раздел 5.2.2.
-
--query=
value ,
-q value
Файл или строка, содержащая запрос
SELECT
для того, чтобы получить данные.
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1).
Эта опция устарела. Это всегда включается и попытка отключения
(
--skip-secure-auth ,
--secure-auth=0
) сразу приводит к ошибке.
--shared-memory-base-name=name
В Windows имя совместно используемой памяти
для соединений, сделанных, используя совместно используемую память для
локального сервера. Эта опция применяется, только если сервер поддерживает
соединения совместно используемой памяти.
-
--silent ,
-s
Тихий режим. Никакого вывода.
-
--socket=path ,
-S path
Для соединений с localhost файл сокета Unix, для Windows
имя названного канала.
-
--sql-mode=
mode
Установите режим SQL для сеанса клиента.
-
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL, и указывают, где найти
ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--tls-version=
protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений.
Значение: список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL.
Для деталей см.
раздел 7.4.3.
-
--user=user_name
,
-u user_name
Имя пользователя MySQL, чтобы использовать, соединяясь с сервером.
-
--verbose ,
-v
Многословный режим. Напечатать больше информации о том, что делает
программа. Эта опция может использоваться многократно, чтобы
увеличить количество информации.
-
--version ,
-V
Отобразить информацию о версии.
5.6.
Административные утилиты MySQL
Этот раздел описывает административные программы и программы, которые
выполняют разные служебные операции.
5.6.1. ibd2sdi
Утилита извлечения SDI табличного пространства InnoDB
ibd2sdi
это утилита InnoDB , чтобы извлечь
serialized
dictionary information (SDI) из файлов
табличного пространства InnoDB .
Данные SDI не присутствуют в постоянных табличных пространствах
InnoDB в MySQL 8.0.0.
ibd2sdi
сохранена для будущего использования.
5.6.2.
innochecksum
офлайновая утилита контрольной суммы файла InnoDB
innochecksum
печатает контрольные суммы для файлов InnoDB .
Этот инструмент читает файл табличного пространства InnoDB ,
вычисляет контрольную сумму для каждой страницы, сравнивает расчетную
контрольную сумму с сохраненной контрольной суммой и сообщает о
несоответствиях, которые указывают на поврежденные страницы. Это было
первоначально сделано, чтобы ускорить подтверждение целостности файлов
табличного пространства после отключений электричества, но может также
использоваться после копий файла. Поскольку несоответствия контрольной суммы
InnoDB предписывают закрыть рабочий сервер, может быть
предпочтительно использовать этот инструмент вместо того, чтобы столкнуться с
поврежденными страницами сервера в производственном использовании.
innochecksum
не может использоваться на файлах табличного пространства,
которые сервер уже открыл. Для таких файлов Вы должны использовать
CHECK TABLE , чтобы
проверять таблицы в пределах табличного пространства. Попытка выполнить
innochecksum
на табличном пространстве, которое сервер уже имеет открытым,
приведет к ошибке Unable to lock file.
Если несоответствия контрольной суммы найдены, Вы обычно восстанавливали
бы табличное пространство от резервной копии или запускали бы сервер и
использовали mysqldump
, чтобы сделать резервное копирование таблиц в
пределах табличного пространства.
Вызов innochecksum
:
shell> innochecksum [options ] file_name
Опции innochecksum
innochecksum
поддерживает следующие опции. Для опций, которые обращаются к
номерам страниц, числа начинаются с 0.
--help ,
-?
Отобразить справочное сообщение.
-
--info ,
-I
Синоним для --help
.
-
--version , -V
Отобразить информацию о версии.
-
--verbose , -v
Многословный режим, печатает индикатор хода выполнения в
файл системного журнала каждые пять секунд. Для индикатора хода выполнения,
который будет напечатан, файл системного журнала должен быть определен,
используя --log option . Чтобы включить этот режим:
shell> innochecksum --verbose
Чтобы выключить этот режим:
shell> innochecksum --verbose=FALSE
Опции --verbose и --log
могут быть определены в то же самое время. Например:
shell> innochecksum --verbose --log=/var/lib/mysql/test/logtest.txt
Чтобы определить местонахождение информации об индикаторе хода выполнения в
файле системного журнала, Вы можете выполнить следующий поиск:
shell> cat ./logtest.txt | grep -i "okay"
Информация об индикаторе хода выполнения в файле системного
журнала подобна следующему:
page 1663 okay: 2.863% done
page 8447 okay: 14.537% done
page 13695 okay: 23.568% done
page 18815 okay: 32.379% done
page 23039 okay: 39.648% done
page 28351 okay: 48.789% done
page 33023 okay: 56.828% done
page 37951 okay: 65.308% done
page 44095 okay: 75.881% done
page 49407 okay: 85.022% done
page 54463 okay: 93.722% done
...
-
--count ,
-c
Напечатайте количество страниц в файле. Например:
shell> innochecksum --count ../data/test/tab1.ibd
-
--start-page=num ,
-s num
Начать с конкретной страницы в файле:
shell> innochecksum --start-page=600 ../data/test/tab1.ibd
Или:
shell> innochecksum -s 600 ../data/test/tab1.ibd
-
--end-page=num ,
-e num
Закончить на конкретной странице в файле:
shell> innochecksum --end-page=700 ../data/test/tab1.ibd
Или:
shell> innochecksum --p 700 ../data/test/tab1.ibd
-
--page=
num ,
-p num
Проверьте только эту страницу:
shell> innochecksum --page=701 ../data/test/tab1.ibd
-
--strict-check , -C
Определите строгий алгоритм контрольной суммы. Опции включают
innodb , crc32 и none .
В этом примере алгоритм контрольной суммы innodb определен:
shell> innochecksum --strict-check=innodb ../data/test/tab1.ibd
В этом примере определен алгоритм контрольной суммы crc32 :
shell> innochecksum -C crc32 ../data/test/tab1.ibd
Следующие условия применяются:
--no-check , -n
Проигнорируйте проверку контрольной суммы, переписывая контрольную сумму.
Эта опция может использоваться только с опцией
--write .
Если --write
не задана,
innochecksum прерывается.
В этом примере контрольная сумма innodb
переписана, чтобы заменить недопустимую контрольную сумму:
shell> innochecksum --no-check --write innodb ../data/test/tab1.ibd
-
--allow-mismatches , -a
Максимальное количество несоответствий контрольной суммы, позволенных
перед прерыванием
innochecksum. Настройка по умолчанию 0. Если
--allow-mismatches= N ,
где N >=0 ,
N несоответствий разрешены, и
innochecksum
заканчивается на N +1 . Когда
--allow-mismatches установлена в 0,
innochecksum
заканчивается на первом несоответствии контрольной суммы.
В этом примере контрольная сумма переписана и
--allow-mismatches установлена в 1.
shell> innochecksum --allow-mismatches=1 --write innodb ../data/test/tab1.ibd
С --allow-mismatches =1, если есть несоответствие на странице 600
и другое на странице 700 в файле с 1000 страницами, контрольная сумма
обновлена для страниц 0-599 и 601-699. Поскольку
--allow-mismatches =1, контрольная сумма терпит первое
несоответствие и заканчивается на втором несоответствии, страницы 700-999
не будут изменены.
-
--write=name ,
-w num
Перепишите контрольную сумму. Переписывая недопустимую контрольную сумму,
--no-check
должна использоваться вместе с --write . Опция
--no-check
говорит innochecksum
игнорировать проверку недопустимой контрольной суммы. Вы
не должны определить
--no-check , если текущая контрольная сумма допустима.
Алгоритм должен быть определен, используя опцию
--write .
Возможные значения для --write :
--write переписывает все страницы на диск. Если новая
контрольная сумма идентична существующей контрольной сумме, новая контрольная
сумма не написана на диск, чтобы минимизировать ввод/вывод.
innochecksum
получает исключительную блокировку,
когда используется --write .
Контрольная сумма crc32 написана для tab1.ibd :
shell> innochecksum -w crc32 ../data/test/tab1.ibd
Контрольная сумма crc32 переписана, чтобы
заменить недопустимую crc32 :
shell> innochecksum --no-check --write crc32 ../data/test/tab1.ibd
-
--page-type-summary , -S
Выведите на экран количество страниц каждого
типа в табличном пространстве:
shell> innochecksum --page-type-summary ../data/test/tab1.ibd
Типовой вывод для --page-type-summary :
File::../data/test/tab1.ibd
================PAGE TYPE SUMMARY==============
#PAGE_COUNT PAGE_TYPE
===============================================
2 Index page
0 Undo log page
1 Inode page
0 Insert buffer free list page
2 Freshly allocated page
1 Insert buffer bitmap
0 System page
0 Transaction system page
1 File Space Header
0 Extent descriptor page
0 BLOB page
0 Compressed BLOB page
0 Other type of page
===============================================
Additional information:
Undo page type: 0 insert, 0 update, 0 other
Undo page state: 0 active, 0 cached, 0 to_free,
0 to_purge, 0 prepared, 0 other
-
--page-type-dump , -D
Выведите информацию о типе страницы для каждой страницы в табличном
пространстве в stderr или stdout :
shell> innochecksum --page-type-dump=/tmp/a.txt ../data/test/tab1.ibd
-
--log ,
-l
Журнал вывода для
innochecksum. Имя файла системного журнала должно быть
обеспечено. Вывод журнала содержит значения контрольной суммы для каждой
страницы табличного пространства. Для несжатых таблиц также обеспечены
значения LSN. --log
заменяет опцию --debug , которая была доступна в
более ранних выпусках:
shell> innochecksum --log=/tmp/log.txt ../data/test/tab1.ibd
Или:
shell> innochecksum -l /tmp/log.txt ../data/test/tab1.ibd
- .
Определите - , чтобы читать из стандартного ввода. Если
- отсутствует, когда будет ожидаться чтение из
стандартного ввода,
innochecksum выведет информацию об использовании
innochecksum
, указывающую, что пропущена опция -:
shell> cat t1.ibd | innochecksum -
В этом примере innochecksum
пишет контрольную сумму crc32
в a.ibd , не изменяя оригинальный файл t1.ibd .
shell> cat t1.ibd | innochecksum --write=crc32 - > a.ibd
Выполнение innochecksum на многих
определяемых пользователем файлах табличного пространства
Следующие примеры демонстрируют, как выполнить
innochecksum
на многих определяемых пользователем файлах табличного
пространства (файлах .ibd ).
Запустите innochecksum
для всего табличного пространства (файлы
.ibd ) в базе данных test:
shell> innochecksum ./data/test/*.ibd
Запустите innochecksum
для всех файлов табличного пространства
(файлы .ibd ), у которых есть имя файла, начинающееся с
t:
shell> innochecksum ./data/test/t*.ibd
Запустите innochecksum
для всех файлов табличного пространства
(файлы .ibd ) в каталоге data :
shell> innochecksum ./data/*/*.ibd
Запуск innochecksum
на многих определяемых пользователем файлах табличного
пространства не поддержано на операционных системах Windows, поскольку в
Windows оболочка cmd.exe не понимает
глобальное расширение образца. На системах Windows
innochecksum
должен быть выполнен отдельно для каждого определяемого
пользователем файла табличного пространства. Например:
cmd> innochecksum.exe t1.ibd
cmd> innochecksum.exe t2.ibd
cmd> innochecksum.exe t3.ibd
Выполнение innochecksum на многих
системных файлах табличного пространства
По умолчанию в InnoDB есть только один
системный файл табличного пространства (ibdata1 ),
но многие файлы для системного табличного пространства могут быть определены,
используя опцию
innodb_data_file_path . В следующем примере три файла для
системного табличного пространства определены, используя
innodb_data_file_path : ibdata1 , ibdata2
и ibdata3 .
shell> ./bin/mysqld --no-defaults
--innodb-data-file-path="ibdata1:10M;ibdata2:10M;ibdata3:10M:autoextend"
Три файла (ibdata1 , ibdata2 и ibdata3 )
формируют одно логическое системное табличное пространство. Чтобы выполнить
innochecksum
на многих файлах, которые формируют одно логическое системное
табличное пространство,
innochecksum требует опцию - , чтобы считать
файлы табличного пространства из стандартного ввода, который эквивалентен
связыванию многократных файлов, чтобы создать один единый файл. Для примера,
обеспеченного выше, использовалась бы следующая команда:
shell> cat ibdata* | innochecksum -
Запуск innochecksum
на многократных файлах в том же самом табличном
пространстве не поддержано на операционных системах Windows, так как в
Windows оболочка cmd.exe не понимает
глобальное расширение образца. На системах Windows
innochecksum
должен быть выполнен отдельно для каждого системного файла
табличного пространства. Например:
cmd> innochecksum.exe ibdata1
cmd> innochecksum.exe ibdata2
cmd> innochecksum.exe ibdata3
5.6.3.
myisam_ftdump отображение
информации полнотекстового индекса
myisam_ftdump
выводит на экран информацию об индексах
FULLTEXT таблиц MyISAM . Это читает индексный файл
MyISAM непосредственно, таким образом, это должно быть выполнено
на хосте сервера, где таблица расположена. Перед использованием
myisam_ftdump
сначала выполните FLUSH TABLES ,
если сервер работает.
myisam_ftdump
просматривает и выводит все индексные записи, что не особенно
быстро. С другой стороны, распределение слов нечасто изменяется, таким
образом, оно не должно часто выполняться.
Вызов myisam_ftdump
:
shell> myisam_ftdump [options ] tbl_name
index_num
tbl_name должен быть названием таблицы
MyISAM . Вы можете также определить таблицу, называя ее индексный
файл (файл с расширением .MYI ). Если Вы не вызываете
myisam_ftdump
в каталоге, где табличные файлы расположены, имени таблицы или
индексного файла должен предшествовать путь к каталогу базы данных таблицы.
Индексы начинаются с 0.
Пример: Предположите, что база данных test содержит таблицу
mytexttable , у которой есть следующее определение:
CREATE TABLE mytexttable (id INT NOT NULL, txt TEXT NOT NULL,
PRIMARY KEY (id), FULLTEXT (txt)) ENGINE=MyISAM;
Индекс на id это индекс 0, а индекс
FULLTEXT на txt это индекс 1.
Если Ваш рабочий каталог это каталог базы данных test , вызов
myisam_ftdump
:
shell> myisam_ftdump mytexttable 1
Если путь к каталогу базы данных test это
/usr/local/mysql/data/test , Вы можете также определить параметр
имени таблицы, используя этот путь. Это полезно, если Вы не вызываете
myisam_ftdump
в каталоге базы данных:
shell> myisam_ftdump /usr/local/mysql/data/test/mytexttable 1
Вы можете использовать
myisam_ftdump, чтобы произвести список индекных записей
в порядке частоты возникновения:
shell> myisam_ftdump -c mytexttable 1 | sort -r
myisam_ftdump
понимает следующие опции:
--help ,
-h -?
Отобразить сообщение справки.
-
--count ,
-c
Вычислите статистику на слово (количество и глобальные веса).
-
--dump ,
-d
Выведите индексирование, включая смещения данных и веса слова.
-
--length ,
-l
Сообщите о распределении длины.
-
--stats ,
-s
Глобальный отчет индексной статистики. Это работа по умолчанию, если
никакая другая работа не определена.
-
--verbose
, -v
Многословный режим. Напечатать подробный вывод о том,
что делает программа.
5.6.4. myisamchk
утилита табличного обслуживания MyISAM
myisamchk
получает информацию о Ваших таблицах, базах данных, проверяет,
ремонтирует или оптимизирует их.
myisamchk работает с таблицами
MyISAM , которые имеют файлы
.MYD и .MYI , чтобы хранить данные и индексы.
Вы можете также использовать CHECK
TABLE и REPAIR TABLE
для проверки и ремонта таблиц MyISAM , см. разделы
14.7.2.2 и
14.7.2.5.
Использование myisamchk
с разделенными таблицами не поддержано.
Лучше делать резервное копирование таблицы прежде, чем выполнить работу
ремонта, при некоторых обстоятельствах работа могла бы вызвать потерю данных.
Возможные причины включают, но не ограничены ошибками файловой системы.
Вызов myisamchk
:
shell> myisamchk [options ] tbl_name ...
options определяют то, что Вы хотите от
myisamchk.
Они описаны в следующих разделах. Вы можете также получить список опций,
вызывая myisamchk --help
.
Без опций myisamchk
просто проверяет Вашу таблицу как работа
по умолчанию. Чтобы получить больше информации или сказать
myisamchk
принимать меры по ликвидации последствий, определите опции как
описано в следующем обсуждении.
tbl_name это таблица базы данных, которую Вы хотите
проверить или восстановить. Если Вы выполняете
myisamchk
где-то кроме каталога базы данных, Вы должны определить путь к каталогу базы
данных, потому что myisamchk
понятия не имеет, где база данных расположена.
Фактически myisamchk
не заботится, расположены ли файлы, с которыми Вы продолжаете
работать, в каталоге базы данных. Вы можете скопировать файлы, которые
соответствуют таблице базы данных, в некоторое другое место и выполнять
операции восстановления на них там.
Вы можете назвать несколько таблиц в командной строке
myisamchk.
Вы можете также определить таблицу, называя ее индексный файл (файл с
расширением .MYI ). Это позволяет Вам определить все таблицы в
каталоге при использовании образца *.MYI .
Например, если Вы находитесь в каталоге базы данных, Вы можете проверить
все таблицы MyISAM в этом каталоге:
shell> myisamchk *.MYI
Если Вы не находитесь в каталоге базы данных, Вы можете проверить все таблицы
там, определяя путь к каталогу:
shell> myisamchk /path/to/database_dir/ *.MYI
Вы можете даже проверить все таблицы во всех базах данных, определяя
подстановочный знак с путем к каталогу данных MySQL:
shell> myisamchk /path/to/datadir/*/* .MYI
Рекомендуемый способ быстро проверить все таблицы MyISAM :
shell> myisamchk --silent --fast /path/to/datadir/*/* .MYI
Если Вы хотите проверить все таблицы MyISAM и отремонтировать
те, которые повреждены, Вы можете использовать следующую команду:
shell> myisamchk --silent --force --fast --update-state \
--key_buffer_size=64M --myisam_sort_buffer_size=64M \
--read_buffer_size=1M --write_buffer_size=1M \
/path/to/datadir/*/* .MYI
Эта команда предполагает, что у Вас свободно больше 64 МБ.
Для получения дополнительной информации о распределении памяти с
myisamchk
см. раздел 5.6.4.6.
Для дополнительной информации об использовании
myisamchk
см. раздел 8.6.
Вы должны гарантировать, что никакая другая программа не
использует таблицы, в то время как Вы выполняете
myisamchk
. Самое эффективное средство состоит в том, чтобы закрыть сервер
MySQL командой myisamchk
или заблокировать все таблицы, на которых используется
myisamchk.
Иначе, когда Вы выполняете
myisamchk, это может вывести на экран следующее
сообщение об ошибке:
warning: clients are using or haven't closed the table properly
Это означает, что Вы пытаетесь проверить таблицу, которая была обновлена
другой программой (такой как
mysqld), которая еще не закрыла файл, или это
отвалилось, не закрывая файл должным образом, что может иногда приводить к
повреждению одной или больше таблиц MyISAM .
Если mysqld
работает, Вы должны вынудить его сбросить любые табличные модификации,
которые все еще буферизованы в памяти при использовании
FLUSH TABLES .
Вы должны гарантировать, что никто не использует таблицы в то время, как Вы
выполняете myisamchk
.
Однако, самый легкий способ избежать этой проблемы состоит в том, чтобы
использовать CHECK TABLE
вместо myisamchk
, чтобы проверить таблицы. См.
раздел 14.7.2.2.
myisamchk
поддерживает следующие опции, которые могут быть определены в командной
строке или в группе [myisamchk] файла опции. Для информации о
файлах опции, используемых программами MySQL, см.
раздел 5.2.6.
Таблица 5.16. Опции myisamchk
Формат | Описание
|
--analyze | Проанализируйте распределение значений ключа |
--backup
| Сделайте резервное копирование файла .MYD как
file_name-time.BAK |
--block-search | Найдите запись, которой принадлежит блок
при данном смещении |
--check
| Проверьте таблицу на ошибки |
--check-only-changed | Проверка только таблиц, которые изменились,
начиная с последней проверки |
--correct-checksum | Исправьте информацию о контрольной
сумме для таблицы |
--data-file-length | Максимальная длина файла с данными (для
пересоздания файла с данными, когда это полно) |
--debug
| Вести журнал отладки |
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опций |
--defaults-group-suffix | Групповое значение суффикса опции
|
--description | Напечатайте описательную информацию о таблице
|
--extend-check | Сделайте очень полную табличную проверку или
ремонт, который пытается возвратить каждую возможную строку файла с данными
|
--fast
| Проверка только таблиц, которые не были закрыты должным образом
|
--force
| Сделайте ремонт автоматически, если myisamchk находит
какие-либо ошибки в таблице |
--force | Перезапишите старые временные файлы.
Для использования с опцией -r или -o |
--ft_max_word_len |
Максимальная длина слова для индексов FULLTEXT |
--ft_min_word_len |
Минимальная длина слова для индексов FULLTEXT |
--ft_stopword_file |
Используйте стоп-слова из этого файла вместо встроенного списка |
--HELP | Показать сообщение справки |
--help | Показать сообщение справки |
--information | Напечатайте статистику о таблице, которая проверена
|
--key_buffer_size | Размер буфера, используемого
для индексных блоков для таблиц MyISAM |
--keys-used | Битовое значение, которое указывает,
который индекс обновить |
--max-record-length | Пропустите строки, более крупные, чем данная
длина, если myisamchk не может выделить память, чтобы их обработать |
--medium-check | Сделайте проверку, которая быстрее,
чем --extend-check |
--myisam_block_size | Размер блока, который будет
использоваться для индексных страниц MyISAM |
--myisam_sort_buffer_size |
Буфер, который выделен, сортируя индексы, при выполнении функции REPAIR
или при создании индексов с CREATE INDEX или ALTER TABLE |
--no-defaults | Не читать файлы опций |
--parallel-recover | Использует тот же самый метод, как -r и -n,
но создает все ключи параллельно, используя различные потоки (бета) |
--print-defaults | Напечатайте опции по умолчанию |
--quick
| Для более быстрого ремонта, не изменяя файл с данными |
--read_buffer_size | Каждый поток, который делает
последовательный просмотр, выделяет буфер этого размера для каждой
таблицы, которую просматривает |
--read-only | Не отмечайте таблицу как "проверено" |
--recover | Сделайте ремонт, который может решить почти любую
проблему, кроме уникальных ключей, которые не уникальны |
--safe-recover | Сделайте ремонт, используя старый метод
восстановления, который считывает все строки в порядке и обновляет все
индексные деревья, основанные на найденных строках |
--set-auto-increment | Установить нумерацию AUTO_INCREMENT
для новых записей с этого значения |
--set-collation | Определите сопоставление, чтобы использовать для
того, чтобы сортировать индексы таблицы |
--silent
| Тихий режим |
--sort_buffer_size | Буфер, который выделен,
сортируя индекс при выполнении REPAIR или когда индексы создаются с CREATE
INDEX или ALTER TABLE |
--sort-index | Сортируйте индексные блоки дерева в порядке high-low
|
--sort-records | Сортировать записи согласно индексу |
--sort-recover | Использовать сортировку, чтобы решить ключи, даже
если временные файлы были бы очень большими |
--stats_method | Определяет, как код набора
индексной статистики MyISAM должен обработать NULL |
--tmpdir | Путь к каталогу, который будет использоваться для того,
чтобы хранить временные файлы |
--unpack | Распакуйте таблицу, которая была упакована myisampack
|
--update-state | Храните информацию в .MYI, чтобы указать, когда
таблица была проверена и повреждена ли таблица |
--verbose | Подробный режим |
--version | Показать информацию о версии |
--write_buffer_size | Размер буфера записи
|
5.6.4.1. Основные опции myisamchk
Опции, описанные в этом разделе, могут использоваться для любого типа
табличной работы, выполненной
myisamchk. Разделы после этого описывают опции, которые
принадлежат только определенным операциям, таким как табличная
проверка или восстановление.
--help ,
-?
Отобразить справочное сообщение. Опции сгруппированы типом работы.
-
--HELP ,
-H
Отобразить справочное сообщение. Опции представлены в единственном списке.
-
--debug=
debug_options ,
-# debug_options
Писать журнал отладки. Типичная строка
debug_options это
d:t:o,file_name .
Значение по умолчанию d:t:o,/tmp/myisamchk.trace .
-
--defaults-extra-file=file_name
Читать этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
-
--defaults-group-suffix=str
Читать не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
myisamchk
обычно читает группу [myisamchk] . Если есть опция
--defaults-group-suffix=_other ,
myisamchk также читает группу
[myisamchk_other] .
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций от файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение то, что файл .mylogin.cnf , если он существует,
считан во всех случаях. Это разрешает паролям быть определенными более
безопасным способом чем в командной строке, даже когда задана опция
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см. раздел
5.6.7.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
-
--silent ,
-s
Тихий режим. Напишите вывод только, когда ошибки происходят.
Вы можете использовать -s дважжды (-ss ) для
очень тихого режима.
-
--verbose ,
-v
Подробный режим. Напечатайте больше информации о том, что делает
программа. Это может использоваться с -d и -e .
Допустимо использовать -v многократно
(-vv , -vvv ) для более подробного вывода.
-
--version ,
-V
Отобразить информацию о версии.
-
--wait ,
-w
Вместо того, чтобы закончить с ошибкой, если таблица заблокирована, ждите,
пока таблицу не освободят. Если Вы выполняете
mysqld
с отключенной внешней блокировкой, таблица может быть заблокирована только
другой копией myisamchk
.
Вы можете также установить следующие переменные при использовании
--var_name =value :
Переменная |
Значение по умолчанию |
decode_bits | 9 |
ft_max_word_len | version-dependent
|
ft_min_word_len | 4 |
ft_stopword_file | Встроенный список
|
key_buffer_size | 523264 |
myisam_block_size | 1024 |
myisam_sort_key_blocks | 16 |
read_buffer_size | 262136 |
sort_buffer_size | 2097144 |
sort_key_blocks | 16 |
stats_method | nulls_unequal |
write_buffer_size | 262136 |
Возможные переменные и их значения по умолчанию могут быть изучены с
myisamchk --help
:
myisam_sort_buffer_size используется, когда ключи
отремонтированы, сортируя ключи, что является нормальным случаем, когда Вы
используете --recover
. sort_buffer_size устаревший синоним для
myisam_sort_buffer_size .
key_buffer_size используется, когда Вы проверяете таблицу с
--extend-check
или когда ключи отремонтированы, вставляя ключевые строки
поштучно в таблицу (как делают нормальные вставки). Восстановление через
ключевой буфер используется в следующих случаях:
Восстановление через ключевой буфер берет намного меньше дискового
пространства, чем использование сортировки, но также намного медленнее.
Если Вы хотите более быстрый ремонт, установите переменные
key_buffer_size и myisam_sort_buffer_size
приблизительно к 25% от Вашей доступной памяти. Вы можете установить обе
переменные в большие значения, потому что только одна из них
используется за раз.
myisam_block_size размер, используемый для индексных блоков.
stats_method влияет на то, как значения NULL
обработаны для набора индексной статистики, когда задана опция
--analyze .
Это действует как системная переменная myisam_stats_method .
См. разделы 6.1.5 и
9.3.7.
ft_min_word_len и ft_max_word_len
указывают на минимальную и максимальную длину слова для индексов
FULLTEXT в таблицах MyISAM .
ft_stopword_file имя файла стоп-слов.
Они должны быть установлены при следующих обстоятельствах.
Если Вы используете
myisamchk, чтобы выполнить работу, которая изменяет
индексы таблицы (например, ремонт или анализ), индексы FULLTEXT
пересозданы, используя значения по умолчанию параметров для минимальной и
максимальной длины слова и файла стоп-слов, если Вы не определяете иначе.
Это может привести к провалу попытки запросов.
Проблема происходит, потому что эти параметры известны только серверу.
Они не сохранены в индексных файлах MyISAM .
Чтобы избежать проблемы, если Вы изменили минимальную или максимальную длину
слова или файл стоп-слов в сервере, определите те же самые
ft_min_word_len , ft_max_word_len и
ft_stopword_file в
myisamchk,
которые Вы используете для
mysqld.
Например, если Вы установили минимальную длину слова в 3, Вы можете
восстановить таблицу с
myisamchk:
shell> myisamchk --recover --ft_min_word_len=3 tbl_name .MYI
Чтобы гарантировать, что
myisamchk и сервер используют те же самые значения для
полнотекстовых параметров, Вы можете разместить каждый в обоих разделах
[mysqld] и [myisamchk] файла опции:
[mysqld]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3
Альтернатива использованию
myisamchk это применение
REPAIR TABLE ,
ANALYZE TABLE ,
OPTIMIZE TABLE или
ALTER TABLE .
Эти запросы выполнены сервером, который знает надлежащие значения параметра.
5.6.4.2. Опции проверки myisamchk
myisamchk
поддерживает следующие опции для табличных операций проверки:
--check ,
-c
Проверьте таблицу на ошибки. Это работа по умолчанию, если Вы не
определяете опции, которая выбирает тип работы явно.
-
--check-only-changed , -C
Проверка только таблиц, которые изменились, начиная с последней проверки.
-
--extend-check , -e
Проверьте таблицу очень тщательно. Это является довольно медленным, если
таблица имеет много индексов. Эта опция должна только использоваться в
крайних случаях. Обычно
myisamchk или
myisamchk --medium-check должны быть в состоянии
определить, есть ли какие-либо ошибки в таблице.
Если Вы используете
--extend-check
и имеете много памяти, установка переменной
key_buffer_size к большому значению помогает работе ремонта,
выполненной в итоге быстрее.
См. также описание этой опции под опциями ремонта таблицы.
См. раздел 5.6.4.5.
-
--fast ,
-F
Проверка только таблиц, которые не были закрыты должным образом.
-
--force ,
-f
Сделайте работу ремонта автоматически, если
myisamchk
находит какие-либо ошибки в таблице. Тип ремонта тот же самый, как определен
в опциях --recover
или -r .
-
--information
, -i
Напечатайте информационную статистику о таблице, которая проверена.
-
--medium-check
, -m
Сделайте проверку, которая быстрее
--extend-check
. Это находит только 99.99% всех ошибок, что должно быть
достаточно хорошо в большинстве случаев.
-
--read-only
, -T
Не отмечайте таблицу как "проверено". Это полезно, если Вы используете
myisamchk,
чтобы проверить таблицу, которая используется некоторым другим приложением,
которое не использует блокировку, например,
mysqld,
когда выполнено с отключенной внешней блокировкой.
-
--update-state , -U
Храните информацию в файле .MYI , чтобы указать, когда таблица
была проверена и отказала ли таблица. Это должно использоваться, чтобы
извлечь полную пользу из
--check-only-changed , но Вы не должны использовать эту опцию, если
mysqld
использует таблицу, и Вы выполняете это с отключенной внешней блокировкой.
5.6.4.3. Ремонтные опции myisamchk
myisamchk
поддерживает следующие опции для операций ремонта таблицы (операции,
выполненные, когда заданы опции вроде
--recover
или --safe-recover
):
--backup ,
-B
Сделайте резервное копирование файоа .MYD как
file_name -time .BAK .
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--correct-checksum
Исправьте информацию о контрольной сумме для таблицы.
-
--data-file-length=len ,
-D len
Максимальная длина файла с данными (обновляя файл с данными,
когда он full).
--extend-check , -e
Сделайте ремонт, который пытается возвратить каждую возможную строку
от файла с данными. Обычно это также находит много строк мусора.
Не используйте эту опцию, если Вы еще не отчаялись.
См. также описание этой опции под табличными опциями проверки.
Для описания выходного формата см.
раздел 5.6.4.5.
--force ,
-f
Перезапишите старые промежуточные файлы (файлы с именами вроде
tbl_name .TMD ) вместо прерывания.
-
--keys-used=
val ,
-k val
Для myisamchk
значение опции это битовое значение, которое указывает, который
индекс обновить. Каждый бит значения опции соответствует индексу таблицы,
где первый индекс это 0. Значение опции 0 отключает обновления всех индексов,
что может использоваться, чтобы получить более быстрые вставки.
Дезактивированные индексы могут быть реактивированы при использовании опции
myisamchk -r
.
-
--no-symlinks
, -l
Не следовать за символическими ссылками. Обычно
myisamchk
восстанавливает таблицу, на которую указывает символьная ссылка. Эта опция не
существует с MySQL 4.0, потому что версии с 4.0
не удаляют символьные ссылки во время операций ремонта.
-
--max-record-length=len
Пропустите строки, более крупные, чем данная длина, если
myisamchk
не может выделить память, чтобы хранить их.
-
--parallel-recover , -p
Используйте тот же самый метод как -r и -n ,
но создайте все ключи параллельно, используя различные потоки.
-
--quick ,
-q
Достигните более быстрого ремонта, изменяя только индексный файл, но
не файл с данными. Вы можете определить эту опцию дважды, чтобы вынудить
myisamchk
изменить оригинальный файл с данными в случае дубликата ключа.
-
--recover ,
-r
Сделайте ремонт, который может решить почти любую проблему, кроме
уникальных ключей, которые стали не уникальными (что является крайне
маловероятной ошибкой с MyISAM ). Если Вы хотите восстановить
таблицу, эту опцию стоит попробовать сначала. Вы должны попробовать
--safe-recover
только если
myisamchk сообщает, что таблица не может быть
восстановлена, используя
--recover . В маловероятном случае, что
--recover
терпит неудачу, файл с данными остается неповрежденным.
Если у Вас есть большая память, Вы должны увеличить значение
myisam_sort_buffer_size .
-
--safe-recover , -o
Сделайте ремонт, используя старый метод восстановления, который
читает все строки по порядку и обновляет все индексные деревья, основанные на
найденных строках. Это явно медленнее, чем
--recover ,
но может обработать несколько очень маловероятных случаев, недоступных
--recover .
Этот метод восстановления также использует намного меньше дискового
пространства, чем
--recover . Обычно Вы должны восстановить сначала с использованием
--recover
и затем с
--safe-recover только если
--recover
точно терпит неудачу.
Если у Вас есть большая память, Вы должны увеличить значение
key_buffer_size .
-
--set-collation=name
Определите сопоставление, чтобы использовать для того, чтобы сортировать
индексы таблицы. Имя набора символов подразумевается первой
частью имени сопоставления.
-
--sort-recover , -n
Вынудите myisamchk
использовать сортировку, чтобы решить ключи, даже если временные
файлы были бы очень большими.
-
--tmpdir=
dir_name ,
-t dir_name
Путь к каталогу, который будет использоваться для того, чтобы хранить
временные файлы. Если это не установлено,
myisamchk использует значение
переменной окружения TMPDIR .
--tmpdir
может быть установлен в список путей к каталогам, которые используются
последовательно круговым способом для того, чтобы создать временные файлы.
Символ разделителя между именами каталогов: двоеточие (: ) в Unix
и точка с запятой (; ) в Windows.
-
--unpack ,
-u
Распакуйте таблицу, которая была упакована
myisampack
.
5.6.4.4. Другие опции myisamchk
myisamchk
поддерживает следующие опции для действий кроме
табличных проверок и ремонта:
--analyze ,
-a
Проанализируйте распределение значений ключа. Это улучшает работу
соединения, позволяя оптимизатору соединений лучше выбрать порядок, в котором
можно присоединиться к таблицам и который индекс использовать. Чтобы получить
информацию о ключевом распределении, используйте
myisamchk --description
--verbose tbl_name
или SHOW INDEX FROM tbl_name .
-
--block-search=offset ,
-b offset
Найдите запись, которой принадлежит блок при данном смещении.
-
--description
, -d
Напечатайте некоторую описательную информацию о таблице. Определение
--verbose
несколько раз производит дополнительную информацию. См.
раздел 5.6.4.5.
-
--set-auto-increment[=value ] ,
-A[value ]
Установить нумерацию AUTO_INCREMENT для новых записей
в данное значение (или выше, если есть существующие записи с
AUTO_INCREMENT больше этого. Если value не
указано, AUTO_INCREMENT для новых записей в настоящее время
начинаются с самого большого значения в таблице плюс один.
-
--sort-index
, -S
Сортируйте индексные блоки дерева в порядке high-low.
Это оптимизирует поиск и делает сканирование таблицы, которое
использует индекс, быстрее.
-
--sort-records=N ,
-R N
Сортировать записи согласно индексу.
Это делает Ваши данные намного больше ограниченными и может убыстрить
основанные на диапазоне SELECT и
ORDER BY , которые используют этот индекс. В первый раз, когда Вы
используете эту опцию, чтобы сортировать таблицу, это может быть очень
медленно. Чтобы определить индексы таблицы, надо использовать
SHOW INDEX ,
который выводит на экран индексы таблицы в том же самом порядке, в каком
myisamchk
их потом увидит. Индексы пронумерованы, начиная с 1.
Если ключи не упакованы (PACK_KEYS=0 ),
у них есть та же самая длина, как когда
myisamchk
сортирует и перемещает записи, только перезаписываются рекордные смещения в
индексировании. Если ключи упакованы (PACK_KEYS=1 ),
myisamchk
должен распаковать ключевые блоки сначала, затем обновить индексы
и упаковать ключевые блоки снова. В этом случае восстановление индексов
быстрее, чем обновление смещений для каждого индекса.
5.6.4.5.
Получение информации о таблице с myisamchk
Получить описание таблицы MyISAM или статистику по ней
можно, используя команды, показанные здесь. Вывод от этих команд объяснен
позже в этом разделе.
myisamchk -d
tbl_name
Выполните myisamchk
в режиме описания, чтобы
произвести описание Вашей таблицы. Если Вы запускаете сервер MySQL с
отключенной внешней блокировкой,
myisamchk
может сообщить об ошибке для таблицы, которая обновлена в то время, как это
работает. Однако, потому что
myisamchk не изменяет таблицу в режиме описания, нет
никакого риска разрушения данных.
- myisamchk -dv
tbl_name
Добавление -v выполняет
myisamchk в подробном режиме так, чтобы это
произвело больше информации о таблице. Добавление -v второй раз
производит больше информации.
- myisamchk -eis
tbl_name
Показать только наиболее важную информацию таблицы. Эта работа является
медленной, потому что она должна считать всю таблицу.
- myisamchk -eiv
tbl_name
Аналог -eis , но говорит Вам, что делает.
tbl_name может быть любым названием таблицы
MyISAM или названием ее индексного файла, как описано в
разделе 5.6.4. Несколько параметров
tbl_name могут быть даны.
Предположите, что таблица названа person и имеет
следующую структуру. MAX_ROWS включена так, чтобы в примере
вывода myisamchk
, показанному позже, некоторые значения были меньшими и
соответствовали выходному формату.
CREATE TABLE person (id INT NOT NULL AUTO_INCREMENT,
last_name VARCHAR(20) NOT NULL,
first_name VARCHAR(20) NOT NULL,
birthDATE, deathDATE, PRIMARY KEY (id),
INDEX (last_name, first_name), INDEX (birth))
MAX_ROWS = 1000000;
Предположите также, что у таблицы есть
эти размеры индексного файла и файла с данными:
-rw-rw---- 1 mysql mysql 9347072 Aug 19 11:47 person.MYD
-rw-rw---- 1 mysql mysql 6066176 Aug 19 11:47 person.MYI
Пример вывода myisamchk -dvv
:
MyISAM file: person
Record format: Packed
Character set: latin1_swedish_ci (8)
File-version:1
Creation time: 2009-08-19 16:47:41
Recover time:2009-08-19 16:47:56
Status: checked,analyzed,optimized keys
Auto increment key: 1 Last value: 306688
Data records: 306688 Deleted blocks: 0
Datafile parts: 306688 Deleted data: 0
Datafile pointer (bytes): 4 Keyfile pointer (bytes): 3
Datafile length: 9347072 Keyfile length: 6066176
Max datafile length: 4294967294 Max keyfile length: 17179868159
Recordlength: 54
table description:
Key Start Len Index Type Rec/key Root Blocksize
1 2 4 unique long 199328 1024
2 6 20 multip. varchar prefix 5123563520 1024
2 7 20 varchar 512
3 4 83 multip. uint24 NULL 3066886065152 1024
Field Start Length Nullpos Nullbit Type
1 1 1
2 2 4 no zeros
3 6 21 varchar
4 27 21 varchar
5 48 31 1 no zeros
6 51 31 2 no zeros
Объяснения типов информации
myisamchk
даны здесь. Keyfile обращается к индексному файлу.
Record и row это
синонимы, как field и column
.
Начальная часть табличного описания содержит эти значения:
MyISAM file
Имя MyISAM (индексного) файла.
Record format
Формат хранения строк таблицы. В качестве примера использовано
Fixed length . Другие возможные значения
Compressed и Packed . Packed
соответствует тому, что SHOW TABLE STATUS
сообщает как Dynamic .
Chararacter set
Табличный набор символов по умолчанию.
File-version
Версия формата MyISAM , всегда 1.
Creation time
Когда файл с данными создавался.
Recover time
Когда индекс/файл с данными был в последний раз восстановлен.
Status
Табличные флаги состояния. Возможные значения
crashed , open ,
changed , analyzed ,
optimized keys и sorted index pages .
Auto increment key , Last value
Ключевое число, связанное со столбцом AUTO_INCREMENT ,
и последний раз произведенное значение для этого столбца. Эти области не
появляются, если нет такого столбца.
Data records
Число строк в таблице.
Deleted blocks
Сколько удаленных блоков все еще зарезервировало пространство.
Вы можете оптимизировать свою таблицу, чтобы минимизировать это пространство.
См. раздел 8.6.4.
Datafile parts
Для формата динамической строки это указывает, сколько там блоков данных.
Для оптимизированной таблицы без фрагментированных строк это то же самое,
как Data records .
Deleted data
Сколько там байт неосвобожденных удаленных данных.
Вы можете оптимизировать свою таблицу, чтобы минимизировать это пространство.
См. раздел 8.6.4.
Datafile pointer
Размер указателя файла с данными в байтах. Это обычно
2, 3, 4 или 5 байтов. Большинство таблиц справляется с 2 байтами, но этим
нельзя управлять от MySQL. Для фиксированных таблиц это адрес строки.
Для динамических таблиц это адрес байта.
Keyfile pointer
Размер указателя индексного файла в байтах. Это обычно 1, 2 или 3 байта.
Большинство таблиц справляется с 2 байтами, но это вычислено автоматически
MySQL. Это всегда адрес блока.
Max datafile length
Насколько большим табличный файл с данными может стать в байтах.
Max keyfile length
Насколько большим табличный файл индекса может стать в байтах.
Record length
Сколько места каждая строка занимает в байтах.
Часть table description
включает список всех ключей в таблице. Для каждого ключа
myisamchk
выводит на экран некоторую информацию о низком уровне:
Key
Номер этого ключа. Это значение показывают только для первого столбца
ключа. Если это значение отсутствует, строка соответствует второму или более
позднему столбцу многостолбцового ключа. Для таблицы, показанной в примере,
есть две строки table description для второго индекса.
Это указывает, что это индекс из многих частей (с двумя частями).
Start
Где в строке эта часть индексирования начинается.
Len
Какой длины эта часть индексирования. Для упакованных чисел это должно
всегда быть полной длиной столбца. Для строк это может быть короче, чем
полная длина индексированного столбца, потому что Вы можете индексировать
приставку строкового столбца. Полная длина ключа составного индекса это
сумма значений Len для всех ключевых частей.
Index
Может ли значение ключа существовать многократно в индексе.
Возможные значения unique или multip. (может).
Type
Какой тип данных эта часть индексирования имеет. Это тип данных
MyISAM с возможными значениями
packed , stripped или empty .
Root
Адрес корня индексного блока.
Block size
Размер каждого индексного блока. По умолчанию это 1024, но значение может
быть изменено во время компиляции, когда MySQL создан из исходного текста.
Rec/key
Это статистическое значение, используемое оптимизатором.
Это говорит, сколько строк на значение индексируют. Уникальный индекс всегда
имеет значение 1. Это может быть обновлено после того, как таблица загружена
(или очень изменена) с
myisamchk -a.
Если это не обновлено вообще, значение по умолчанию 30.
Последняя часть вывода предоставляет информацию о каждом столбце:
Field
Номер столбца.
Start
Позиция байта столбца в пределах строк таблицы.
Length
Длина столбца в байтах.
Nullpos , Nullbit
Для столбцов, которые могут быть NULL ,
MyISAM хранит NULL
как флаг в байте. В зависимости от того, сколько там таких столбцов, могут
быть один или более байтов, используемых с этой целью.
Nullpos и Nullbit , если не пустые, указывают, какие
байт и бит содержат флаг, указывающий, является ли столбец NULL .
Позиция и число байтов для хранения флагов NULL
показывают в строке для области 1. Поэтому имеется 6 строк Field
для таблицы person даже при том, что у нее есть
только пять столбцов.
Type
Тип данных. Значение может содержать любой из следующих описателей:
constant
У всех строк есть то же самое значение.
no endspace
Не хранить конечные пробелы.
no endspace, not_always
Не хранить конечные пробелы и не делать их сжатия для всех значений.
no endspace, no empty
Не хранить конечные пробелы. Не хранить пустые значения.
table-lookup
Столбец был преобразован в ENUM .
zerofill(N )
Старшие значащие N байт
в значении всегда 0 и не сохранены.
no zeros
Не храните ноли.
always zero
Нулевые значения сохранены, используя один бит.
Huff tree
Число дерева Хаффмана, связанное со столбцом.
Bits
Сколько битов используется в дереве Хаффмана.
Huff tree и Bits
выведены на экран, если таблица была сжата
myisampack
. См. раздел 5.6.6.
Пример вывода myisamchk
-eiv:
Checking MyISAM file: person
Data records: 306688 Deleted blocks: 0
- check file-size
- check record delete-chain
No recordlinks
- check key delete-chain
block_size 1024:
- check index reference
- check data record references index: 1
Key: 1: Keyblocks used: 98% Packed:0% Max levels: 3
- check data record references index: 2
Key: 2: Keyblocks used: 99% Packed: 97% Max levels: 3
- check data record references index: 3
Key: 3: Keyblocks used: 98% Packed: -14% Max levels: 3
Total:Keyblocks used: 98% Packed: 89%
- check records and index references
*** LOTS OF ROW NUMBERS DELETED ***
Records:306688 M.recordlength: 25 Packed:83%
Recordspace used: 97% Empty space: 2% Blocks/Record: 1.00
Record blocks:306688 Delete blocks: 0
Record data: 7934464 Deleted data: 0
Lost space: 256512 Linkdata:1156096
User time 43.08, System time 1.68
Maximum resident set size 0, Integral resident set size 0
Non-physical pagefaults 0, Physical pagefaults 0, Swaps 0
Blocks in 0 out 7, Messages in 0 out 0, Signals 0
Voluntary context switches 0, Involuntary context switches 0
Maximum memory usage: 1046926 bytes (1023k)
Вывод myisamchk -eiv
включает следующую информацию:
Data records
Число строк в таблице.
Deleted blocks
Сколько удаленных блоков все еще зарезервировало пространство.
Вы можете оптимизировать свою таблицу, чтобы минимизировать это пространство.
См. раздел 8.6.4.
Key
Число ключей.
Keyblocks used
Какой процент ключевых блоков используется. Когда таблица была только что
реорганизована с myisamchk
, значения очень высоки (около теоретического максимума).
Packed
MySQL пытается упаковать значения ключа, у которых есть общий суффикс.
Это может использоваться только для индексов на
CHAR и
VARCHAR .
Для длинных индексированных строк, у которых есть подобные крайние левые
части, это может значительно уменьшить использованное пространство.
В предыдущем примере второй ключ 40 байтов длиной, и сокращение
пространства на 97% достигнуто.
Max levels
Как глубоко B-дерево для этого ключа. Большие таблицы с длинными
значениями ключа получают высокие значения.
Records
Сколько строк находится в таблице.
M.record length
Средняя длина строки. Это точная длина строки для таблиц со строками
фиксированной длины, потому что у всех строк есть та же самая длина.
Packed
MySQL отрезает пробелы от конца строк. Packed
указывает на процент сбережений, достигнутых, делая это.
Record space used
Какой процент файла с данными используется.
Empty space
Какой процент файла с данными не использован.
Blocks/Record
Среднее число блоков на строку (то есть, сколько ссылок в
фрагментированной строке). Это всегда 1.0 для таблиц фиксированного формата.
Это значение должно остаться так близко к 1.0, насколько возможно.
Если это становится слишком большим, Вы можете реорганизовать таблицу. См.
раздел 8.6.4.
Record blocks
Сколько блоков используется. Для таблиц фиксированного
формата это число строк.
Delete blocks
Сколько блоков удалено.
Record data
Сколько байтов в файле с данными используется.
Deleted data
Сколько байтов в файле с данными удалено.
Lost space
Если строка обновлена к более короткой, некоторое пространство потеряно.
Это сумма всех таких потерь в байтах.
Linkdata
Когда динамический формат таблицы используется, фрагменты строки соединены
с указателями (от 4 до 7 байт каждый). Linkdata это сумма
количества места, используемого всеми такими указателями.
5.6.4.6. Использование памяти myisamchk
Распределение памяти важно, когда Вы выполняете
myisamchk.
myisamchk
не использует больше памяти, чем значения, в которые установлены
его связанные с памятью переменные. Если Вы собираетесь использовать
myisamchk
на очень больших таблицах, Вы должны сначала решить, сколько памяти Вы
хотите, чтобы он использовал. Значение по умолчанию должно использовать
только приблизительно 3 МБ, чтобы выполнить ремонт. При использовании больших
значений Вы можете заставить
myisamchk работать быстрее. Например, если Вы имеете в
наличии больше 512 МБ RAM, Вы могли бы использовать такие опции
(в дополнение к любым другим опциям, которые Вы могли бы определить):
shell> myisamchk --myisam_sort_buffer_size=256M \
--key_buffer_size=512M \
--read_buffer_size=64M --write_buffer_size=64M ...
Использование --myisam_sort_buffer_size=16M
достаточно вероятно для большинства случаев.
Знайте, что myisamchk
использует временные файлы в TMPDIR . Если
TMPDIR указывает на файловую систему в памяти, ошибки памяти
могут легко произойти. Если это происходит, выполните
myisamchk
с --tmpdir=
dir_name , чтобы определить каталог в
файловой системе, у которой есть больше пространства.
При выполнении операций ремонта
myisamchk также нуждается в большом
количестве дискового пространства:
Дважды размер файла с данными (оригинальный файл и копия).
Это пространство не необходимо, если Вы делаете ремонт с
--quick ,
в этом случае только индексный файл обновлен.
Это пространство должно быть доступным на той же самой файловой
системе как оригинальный файл с данными, так как копия
создается в том же самом каталоге, где оригинал.
- Пространство для нового индексного файла, который заменяет старый.
Старый индексный файл является усеченным в начале ремонта,
таким образом, Вы обычно игнорируете это пространство.
Это пространство должно быть доступным на той же самой файловой системе,
где оригинальный файл с данными.
- При применении
--recover или
--sort-recover (но не
--safe-recover
), Вы нуждаетесь в пространстве на диске для того, чтобы
сортировать. Это место выделено во временном каталоге (определенном
TMPDIR или
--tmpdir=dir_name ).
Следующая формула приводит к количеству требуемого пространства:
(largest_key + row_pointer_length ) * number_of_rows * 2
Вы можете проверить длину ключей и row_pointer_length
с myisamchk -dv
tbl_name (см.
раздел 5.6.4.5).
row_pointer_length и
number_of_rows это Datafile pointer и
Data records в табличном описании. Определите
largest_key , проверяя строки Key в
табличном описании. Столбец Len указывает на число байтов для каждой
ключевой части. Поскольку индекс многостолбцовый, ключевой размер это сумма
значений Len для всех ключевых частей.
Если у Вас есть проблема с дисковым пространством во время ремонта, Вы
можете попробовать
--safe-recover вместо
--recover .
5.6.5. myisamlog
показ содержания файла системного журнала MyISAM
myisamlog
обрабатывает содержание файла системного журнала MyISAM .
Чтобы создать такой файл, запустите сервер с
--log-isam=log_file .
Вызов myisamlog
:
shell> myisamlog [options ] [file_name
[tbl_name ] ...]
Работа по умолчанию это обновление (-u ). Если восстановление
сделано (-r ), все записи и возможно обновления и удаления
сделаны, а ошибки только посчитаны. Имя файла системного журнала по умолчанию
myisam.log , если не дана опция log_file .
Если таблицы называют в командной строке, только те таблицы обновлены.
myisamlog
поддерживает следующие опции:
-? , -I
Показать сообщение справки.
-
-c N
Выполните только N команд.
-
-f N
Определите максимальное количество открытых файлов.
-i
Выведите на экран дополнительную информацию перед выходом.
-
-o offset
Определите начальное смещение.
-
-p N
Удалить N компоненты из пути.
-r
Выполните восстановление данных.
-
-R record_pos_file record_pos
Определите файл записей и позицию записи.
-u
Выполните работу обновления.
-v
Подробный режим. Напечатайте вывод о том, что делает программа.
Эта опция может быть дана многократно, чтобы произвести больше деталей.
-
-w write_file
Определите записываемый файл.
-V
Показать информацию о версии.
5.6.6. myisampack
генератор сжатых таблиц MyISAM только для чтения
myisampack
сжимает таблицы MyISAM .
myisampack работает, сжимая каждый столбец
в таблице отдельно. Обычно
myisampack
упаковывает файл с данными на 40%-70%.
Когда таблица используется позже, сервер читает в память информацию и
должен распаковать столбцы. Это приводит к намного лучшей работе, получая
доступ к отдельным строкам, потому что Вы должны только расжать
точно одну строку.
MySQL использует mmap() , когда возможно, чтобы выполнить
отображение памяти на сжатых таблицах. Если mmap() не работает,
MySQL отступает к нормальным операциям чтения-записи файла.
Пожалуйста, отметьте следующее:
Если mysqld
был вызван с отключенной внешней блокировкой, не хорошая идея
вызвать myisampack
, если таблица могла бы быть обновлена сервером во время
упаковочного процесса. Самое безопасное это сжать
таблицы с остановленным сервером.
- После упаковки таблицы они годятся только для чтения.
Это их основное назначение (например, доступ к упакованным таблицам
на компакт-диске).
- myisampack
не поддерживает разделенные таблицы.
Вызов myisampack
:
shell> myisampack [options ] file_name ...
Каждый параметр имени файла должен быть названием индекса
(.MYI ). Если Вы не находитесь в каталоге базы данных, Вы должны
определить путь к файлу. Допустимо опустить расширение .MYI .
После того, как Вы сжимаете таблицу
myisampack, используйте
myisamchk -rq
для пересоздания индексов, см.
раздел 5.6.4.
myisampack
поддерживает следующие опции. Это также читает файлы опции и
поддерживает опции для того, чтобы обработать их согласно
разделу 5.2.7.
--help ,
-?
Отобразить сообщение справки.
-
--backup ,
-b
Сделайте резервное копирование файла с данными каждой таблицы,
используя имя tbl_name .OLD .
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--debug[=
debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка
debug_options это
d:t:o,file_name .
Значение по умолчанию d:t:o .
-
--force ,
-f
Произведите упакованную таблицу, даже если это становится больше,
чем оригинал или если есть промежуточный файл от более раннего вызова
myisampack
. myisampack
создает промежуточный файл
tbl_name .TMD в каталоге базы данных в то
время, как сжимает таблицу. Если Вы уничтожаете процесс
myisampack
, файл .TMD мог бы быть и не удален.
Обычно myisampack
выходит с ошибкой, если он находит, что есть
tbl_name .TMD . С
--force
myisampack
упаковывает таблицу так или иначе.
-
--join=
big_tbl_name ,
-j big_tbl_name
Соединить все таблицы, названные в
командной строке в единственную упакованную таблицу
big_tbl_name . У всех таблиц, которые должны быть
объединены должна быть идентичная структура (те же
самые имена столбцов и типы, те же самые индексы и т.д).
big_tbl_name не должен существовать до работы
соединения. Все исходные таблицы, названные в командной строке, которые будут
слиты в big_tbl_name должны существовать. Исходные
таблицы считаны, но не изменены.
-
--silent ,
-s
Тихий режим. Напишите вывод только, когда ошибки происходят.
-
--test ,
-t
Фактически не упаковывайте таблицу, только проверяйте упаковку.
-
--tmpdir=
dir_name ,
-T dir_name
Используйте названный каталог в качестве местоположения, где
myisampack
создает временные файлы.
-
--verbose ,
-v
Подробный режим. Напишите информацию о продвижении работы и ее результате.
-
--version ,
-V
Отобразить информацию о версии.
-
--wait ,
-w
Ждите и повторите, если таблица используется. Если
mysqld
был вызван с отключенной внешней блокировкой, не хорошая идея вызвать
myisampack
, если таблица могла бы быть обновлена сервером во
время упаковочного процесса.
Следующая последовательность команд иллюстрирует типичный
табличный сеанс сжатия:
shell> ls -l station.*
-rw-rw-r-- 1 montymy 994128 Apr 17 19:00 station.MYD
-rw-rw-r-- 1 montymy 53248 Apr 17 19:00 station.MYI
shell> myisamchk -dvv station
MyISAM file: station
Isam-version: 2
Creation time: 1996-03-13 10:08:58
Recover time: 1997-02-02 3:06:43
Data records: 1192 Deleted blocks: 0
Datafile parts:1192 Deleted data:0
Datafile pointer (bytes): 2 Keyfile pointer (bytes): 2
Max datafile length: 54657023 Max keyfile length: 33554431
Recordlength: 834
Record format: Fixed length
table description:
Key Start Len Index Type Root Blocksize Rec/key
1 2 4 unique unsigned long 1024 1024 1
2 32 30 multip. text 10240 1024 1
Field Start Length Type
1 1 1
2 2 4
3 6 4
4 10 1
5 11 20
6 31 1
7 32 30
8 62 35
9 97 35
10 132 35
11 167 4
12 171 16
13 187 35
14 222 4
15 226 16
16 242 20
17 262 20
18 282 20
19 302 30
20 332 4
21 336 4
22 340 1
23 341 8
24 349 8
25 357 8
26 365 2
27 367 2
28 369 4
29 373 4
30 377 1
31 378 2
32 380 8
33 388 4
34 392 4
35 396 4
36 400 4
37 404 1
38 405 4
39 409 4
40 413 4
41 417 4
42 421 4
43 425 4
44 429 20
45 449 30
46 479 1
47 480 1
48 481 79
49 560 79
50 639 79
51 718 79
52 797 8
53 805 1
54 806 1
55 807 20
56 827 4
57 831 4
shell> myisampack station.MYI
Compressing station.MYI: (1192 records)
- Calculating statistics
normal: 20 empty-space: 16 empty-zero: 12 empty-fill: 11
pre-space: 0 end-space: 12 table-lookups: 5 zero: 7
Original trees: 57 After join: 17
- Compressing file
87.14%
Remember to run myisamchk -rq on compressed tables
shell> myisamchk -rq station
- check record delete-chain
- recovering (with sort) MyISAM-table 'station'
Data records: 1192
- Fixing index 1
- Fixing index 2
shell> mysqladmin -uroot flush-tables
shell> ls -l station.*
-rw-rw-r-- 1 montymy 127874 Apr 17 19:00 station.MYD
-rw-rw-r-- 1 montymy 55296 Apr 17 19:04 station.MYI
shell> myisamchk -dvv station
MyISAM file: station
Isam-version: 2
Creation time: 1996-03-13 10:08:58
Recover time: 1997-04-17 19:04:26
Data records: 1192 Deleted blocks: 0
Datafile parts: 1192 Deleted data:0
Datafile pointer (bytes):3 Keyfile pointer (bytes): 1
Max datafile length:16777215 Max keyfile length: 131071
Recordlength:834
Record format: Compressed
table description:
Key Start Len Index Type Root Blocksize Rec/key
1 2 4 unique unsigned long 10240 1024 1
2 32 30 multip. text 54272 1024 1
Field Start Length Type Huff tree Bits
1 1 1 constant 1 0
2 2 4 zerofill(1) 2 9
3 6 4 no zeros, zerofill(1) 2 9
4 10 1 3 9
5 11 20 table-lookup 4 0
6 31 1 3 9
7 32 30 no endspace, not_always 5 9
8 62 35 no endspace, not_always, no empty 6 9
9 97 35 no empty 7 9
10 132 35 no endspace, not_always, no empty 6 9
11 167 4 zerofill(1) 2 9
12 171 16 no endspace, not_always, no empty 5 9
13 187 35 no endspace, not_always, no empty 6 9
14 222 4 zerofill(1) 2 9
15 226 16 no endspace, not_always, no empty 5 9
16 242 20 no endspace, not_always 8 9
17 262 20 no endspace, no empty 8 9
18 282 20 no endspace, no empty 5 9
19 302 30 no endspace, no empty 6 9
20 332 4 always zero 2 9
21 336 4 always zero 2 9
22 340 1 3 9
23 341 8 table-lookup 9 0
24 349 8 table-lookup 10 0
25 357 8 always zero 2 9
26 365 2 2 9
27 367 2 no zeros, zerofill(1) 2 9
28 369 4 no zeros, zerofill(1) 2 9
29 373 4 table-lookup 11 0
30 377 1 3 9
31 378 2 no zeros, zerofill(1) 2 9
32 380 8 no zeros 2 9
33 388 4 always zero 2 9
34 392 4 table-lookup 12 0
35 396 4 no zeros, zerofill(1) 13 9
36 400 4 no zeros, zerofill(1) 2 9
37 404 1 2 9
38 405 4 no zeros 2 9
39 409 4 always zero 2 9
40 413 4 no zeros 2 9
41 417 4 always zero 2 9
42 421 4 no zeros 2 9
43 425 4 always zero 2 9
44 429 20 no empty 3 9
45 449 30 no empty 3 9
46 479 1 14 4
47 480 1 14 4
48 481 79 no endspace, no empty 15 9
49 560 79 no empty 2 9
50 639 79 no empty 2 9
51 718 79 no endspace 16 9
52 797 8 no empty 2 9
53 805 1 17 1
54 806 1 3 9
55 807 20 no empty 3 9
56 827 4 no zeros, zerofill(2) 2 9
57 831 4 no zeros, zerofill(1) 2 9
myisampack
выводит на экран следующие виды информации:
normal
Число столбцов, для которых не используется
никакая дополнительная упаковка.
empty-space
Число столбцов, содержащих значения, которые являются только пробелами.
Они занимают один бит.
empty-zero
Число столбцов, содержащих значения, которые являются только двоичными
нулями. Они занимают один бит.
empty-fill
Число столбцов целого числа, которые не занимают полный диапазон байта
их типа. Они изменены на меньший тип. Например,
BIGINT
(восемь байтов) может быть сохранен как
TINYINT
(один байт), если все его значения находятся в диапазоне от
-128 до 127 .
pre-space
Число десятичных столбцов, которые сохранены с лидирующими пробелами.
В этом случае каждое значение содержит счетчик для числа лидирующих пробелов.
end-space
Число столбцов, у которых есть много конечных пробелов.
В этом случае каждое значение содержит счетчик для числа конечных пробелов.
table-lookup
У столбца было только небольшое количество различных значений,
которые были преобразованы в
ENUM перед сжатием Хаффмана.
zero
Число столбцов, для которых все значения ноль.
Original trees
Начальное число деревьев Хаффмана.
After join
Число отличных деревьев Хаффмана, оставленных после присоединения
деревьев, чтобы оставить некоторое свободное место в заголовке.
После того, как таблица была сжата, строки Field , выведенные
на экран myisamchk -dvv
, включают дополнительную информацию о каждом столбце:
Type
Тип данных. Значение может содержать любой из следующих описателей:
constant
У всех строк есть то же самое значение.
no endspace
Не храните конечные пробелы.
no endspace, not_always
Не храните конечные пробелы и не делайте сжатие конечных пробелов
для всех значений.
no endspace, no empty
Не храните конечные пробелы и пустые значения.
table-lookup
Столбец был преобразован в ENUM .
zerofill(N )
Старшие N байт в значении всегда 0 и не сохранены.
no zeros
Не храните ноли.
always zero
Нулевые значения сохранены, используя один бит.
Huff tree
Число деревьев Хаффмана, связанных со столбцом.
Bits
Сколько битов используется в дереве Хаффмана.
После того, как Вы выполняете
myisampack, используйте
myisamchk,
чтобы пересоздать индексы. В это время Вы можете также сортировать индексные
блоки и создать статистику, необходимую для оптимизатора MySQL, чтобы
работать более эффективно:
shell> myisamchk -rq --sort-index --analyze tbl_name .MYI
После того, как Вы установили упакованную таблицу в каталог базы данных
MySQL, Вы должны выполнить
mysqladmin flush-tables, чтобы
mysqld
начал использовать новую таблицу.
Чтобы распаковать упакованную таблицу, используйте опцию
--unpack в
myisamchk.
5.6.7.
mysql_config_editor
утилита конфигурации MySQL
mysql_config_editor позволяет Вам сохранить параметры
аутентификации в зашифрованном файле пути входа в систему .mylogin.cnf
. Местоположение файла %APPDATA%\MySQL в Windows и
корневой каталог текущего пользователя на системах не-Windows. Файл может
быть считан позже программами клиента MySQL, чтобы получить параметры
аутентификации для того, чтобы соединиться с MySQL Server.
Незашифрованный формат .mylogin.cnf
состоит из групп опции, подобных другим файлам опции. Каждая группа опций в
.mylogin.cnf называется login path,
который является группой, которая разрешает только определенные опции:
host , user , password ,
port и socket . Думайте о группе опции пути входа в
систему как о ряде опций, которые определяют, с каким сервером MySQL
соединиться и которые указывают, как подтвердить подлинность.
Вот незашифрованный пример:
[client]
user = mydefaultname
password = mydefaultpass
host = 127.0.0.1
[mypath]
user = myothername
password = myotherpass
host = localhost
Когда Вы вызываете программу клиента, чтобы соединиться с сервером,
клиент использует .mylogin.cnf в соединении с другими файлами
опции. Его приоритет выше, чем другие файлы опции, но меньше чем опции,
определенные явно в командной строке клиента. Для информации о порядке, в
котором используются файлы опции, см.
раздел 5.2.6.
Чтобы определить дополнительное имя файла пути входа в систему, установите
переменную окружения MYSQL_TEST_LOGIN_FILE .
Эта переменная признана
mysql_config_editor, стандартными клиентами MySQL
(mysql,
mysqladmin
и т.д.) и утилитой тестирования mysql-test-run.pl
.
Программы используют группы в файле пути входа в
систему следующим образом:
mysql_config_editor воздействует на путь входа в систему
client по умолчанию, если Вы не определяете
--login-path=
name , чтобы указать явно путь входа в систему.
- Без
--login-path
программы клиента читают те же самые группы опции из файла пути
входа в систему, который они читают из других файлов опции.
Рассмотрите эту команду:
shell> mysql
По умолчанию mysql
читает группы [client] и [mysql]
от других файлов опции, таким образом, это читает их из файла пути
входа в систему также.
- С
--login-path
программы клиента дополнительно читают названный путь входа в
систему из файла пути входа в систему. Групповое чтение опции от других
файлов опции остается тем же самым. Рассмотрите эту команду:
shell> mysql --login-path=mypath
mysql
читает группы [client] и [mysql]
из других файлов опции и [client] , [mysql] и
[mypath] из файла пути входа в систему.
- Программы клиента читают файл пути входа в систему даже когда дана
опция
--no-defaults
. Это разрешает паролям быть определенными более безопасным
способом чем в командной строке, даже если есть опция
--no-defaults
.
mysql_config_editor шифрует файл
.mylogin.cnf , таким образом, это не может быть считано как
открытый текст и его содержание, когда дешифровано программами клиента,
используется только в памяти. Таким образом, пароли могут быть сохранены в
файле в формате не открытого текста и использоваться позже, никогда не будучи
выставленными в командной строке или в переменной окружения.
mysql_config_editor
обеспечивает команду print для того, чтобы
вывести на экран содержание файла пути входа в систему, но даже в этом случае
значения пароля замаскированы, чтобы никогда не появляться так, чтобы
другие пользователи могли увидеть их.
Шифрование, используемое
mysql_config_editor
препятствует тому, чтобы пароли появились в .mylogin.cnf
как открытый текст и обеспечивает меры безопасности, предотвращая небрежное
хранение пароля. Например, если Вы выводите на экран незашифрованный
файл опций клиента my.cnf , любые пароли, которые это содержит,
видимы для любого. С .mylogin.cnf это не истина. Но используемое
шифрование не будет удерживать решительного нападавшего, и Вы не должны
считать это невскрываемым. Пользователь, который может получить привилегии
системного администрирования на Вашей машине, чтобы получить доступ к Вашим
файлам, может дешифровать .mylogin.cnf с некоторым усилием.
Файл пути входа в систему должен быть читаемым и перезаписываемым
текущим пользователем и недоступным другим пользователям. Иначе
mysql_config_editor
игнорирует его, и программы клиента также не используют.
Вызов
mysql_config_editor:
shell> mysql_config_editor [program_options ]
command
[command_options ]
Если файл пути входа в систему не существует,
mysql_config_editor
его создаст автоматически.
Параметры команды даны следующим образом:
Позиция названия команды в пределах набора параметров программы является
существенной. Например, эти командные строки имеют те же самые параметры, но
приводят к различным результатам:
shell> mysql_config_editor --help set
shell> mysql_config_editor set --help
Первая командная строка выводит на экран общее сообщение справки
mysql_config_editor
и игнорирует команду set . Вторая командная
строка выводит на экран сообщение справки, определенное именно
для команды set .
Предположите, что Вы хотите установить путь входа в систему
client , который определяет Ваши параметры соединения по
умолчанию, и дополнительный путь входа в систему remote
для того, чтобы соединить с сервером MySQL хост
remote.example.com . Вы хотите войти в систему следующим образом:
Чтобы настраивать пути входа в систему в файле
.mylogin.cnf , используйте следующие команды set .
Введите каждую команду в одну строку, и введите соответствующие пароли,
когда они запрошены:
shell> mysql_config_editor set --login-path=client
--host=localhost --user=localuser --password
Enter password: enter password "localpass" here
shell> mysql_config_editor set --login-path=remote
--host=remote.example.com --user=remoteuser --password
Enter password: enter password "remotepass" here
mysql_config_editor
использует путь входа в систему по умолчанию
client , таким образом, опция --login-path=client
может быть опущена в первой команде, не изменяя ее эффект.
Чтобы увидеть, что
mysql_config_editor пишет в файл
.mylogin.cnf , используйте команду print :
shell> mysql_config_editor print --all
[client]
user = localuser
password = *****
host = localhost
[remote]
user = remoteuser
password = *****
host = remote.example.com
Команда print выводит на экран каждый путь входа в систему как
ряд строк, начинающихся с группового заголовка, указывающего на путь входа в
систему в квадратных скобках, сопровождаемых значениями опции для пути входа
в систему. Значения пароля замаскированы и не появляются как открытый текст.
Если Вы не определяете --all , чтобы вывести на экран все пути
входа в систему или --login-path=name ,
чтобы вывести на экран названный путь входа в систему, команда
print выводит на экран путь входа в систему по умолчанию
client , если он есть.
Как показано предыдущим примером, файл пути входа в систему может
содержать многократные пути входа в систему. Таким образом,
mysql_config_editor
облегчает настройку многих
multiple персонализаций для того, чтобы соединиться
с различными серверами MySQL или для того, чтобы соединиться с данным
сервером, используя различные учетные записи. Любая из них может быть выбрана
по имени через опцию --login-path , когда Вы вызываете программу
клиента. Например, чтобы соединиться с удаленным сервером,
используйте эту команду:
shell> mysql --login-path=remote
mysql
читает группы опции [client] и [mysql] из
других файлов опции и группы [client] , [mysql] и
[remote] из файла пути входа в систему.
Чтобы соединиться с локальным сервером, используйте эту команду:
shell> mysql --login-path=client
Так как mysql
читает пути входа в систему по умолчанию client и
mysql ,
--login-path ничего не добавляет
в этом случае. Команда эквивалентна:
shell> mysql
Опции, считанные из файла пути входа в систему, имеют приоритет перед
опциями, считанным из других файлов опции. Опции, считанные из групп пути
входа в систему, упомянутых позже в файле пути входа в систему, имеют
приоритет перед опциями из групп, приведенных ранее в файле.
mysql_config_editor добавляет пути входа в систему к
файлу пути входа в систему в том порядке, в каком Вы создаете их, таким
образом, Вы должны создать более общие пути входа в систему первыми, а более
определенные пути позже. Если Вы должны переместить путь входа в систему в
пределах файла, Вы можете удалить и пересоздать обновить его, чтобы добавить
ближе к концу файла.
Когда Вы используете команду set с
mysql_config_editor
, чтобы создать путь входа в систему, Вы не должны
определить все возможные значения опций (имя хоста, имя пользователя, пароль,
порт, сокет). Любые недостающие значения позже могут быть определены, когда
Вы вызываете путь клиента, чтобы соединиться с сервером MySQL, в других
файлах опции или в командной строке. Любые опции, определенные в командной
строке, переопределяют определенные в файле пути входа в систему или других
файлах опции. Например, если параметры пути входа в систему
remote также применимы к хосту remote2.example.com ,
соединитесь с сервером на том хосте примерно так:
shell> mysql --login-path=remote --host=remote2.example.com
Основные опции mysql_config_editor
mysql_config_editor поддерживает следующие общие
параметры, которые могут использоваться, предшествуя любой команде,
названной в командной строке.
Таблица 5.17.
Основные опции mysql_config_editor
--help
, -?
Отобразить справочное сообщение.
Чтобы видеть определенное для команды сообщение справки, вызовите
mysql_config_editor
вот так, здесь
command это любая команда, кроме help :
shell> mysql_config_editor command --help
-
--debug[=
debug_options ] ,
-# debug_options
Писать журнал отладки. Типичная строка
debug_options :
d:t:o,file_name .
Значение по умолчанию d:t:o,/tmp/mysql_config_editor.trace .
-
--verbose , -v
Подробный режим. Напечатайте больше информации о том, что делает
программа. Эта опция может быть полезной в диагностировании проблем, если
работа не будет иметь эффекта, который Вы ожидаете.
-
--version , -V
Информация о версии.
Команды и определенные для
команды опции mysql_config_editor
Этот раздел описывает разрешенные команды
mysql_config_editor
и, для каждой, определенные для команды опции
после названия команды в командной строке.
Кроме того,
mysql_config_editor поддерживает общие параметры, которые
могут использоваться, предшествуя любой команде.
mysql_config_editor поддерживает эти команды:
help
Выведите на экран общее сообщение справки. Эта команда не
берет никаких опций.
Чтобы видеть определенное для команды сообщение справки, вызовите
mysql_config_editor
так, здесь command
любая команда, кроме help :
shell> mysql_config_editor command --help
print [options ]
Напечатайте содержание файла пути входа в систему в незашифрованной форме,
за исключением того, что пароли выведены на экран как ***** .
Путь входа в систему по умолчанию client , если
никакой путь входа в систему не называют. Если обе опции --all
и --login-path заданы, --all имеет приоритет.
print разрешает эти опции после названия команды:
--help , -?
Выведите на экран сообщение справки для print .
Чтобы видеть общее сообщение справки, используйте
mysql_config_editor
--help.
--all
Напечатайте содержание всех путей входа в систему в файле
пути входа в систему.
--login-path=name ,
-G name
Напечатайте содержание названного пути входа в систему.
remove [options ]
Удалите путь входа в систему из файла пути входа в систему
или измените путь входа в систему, удаляя опции из него.
Эта команда удаляет из пути входа в систему
только такие опции, как определенные параметрами --host ,
--password , --port , --socket и
--user . Если ни одна из тех опций не дана,
remove удаляет весь путь входа в систему. Например, эта команда
удаляет только user из пути входа в систему
mypath , а не весь путь mypath :
shell> mysql_config_editor remove --login-path=mypath --user
Эта команда удаляет весь путь mypath :
shell> mysql_config_editor remove --login-path=mypath
Команда remove разрешает эти опции после названия команды:
--help , -?
Выведите на экран сообщение справки для remove .
Чтобы видеть общее сообщение справки, используйте
mysql_config_editor
--help.
--host , -h
Удалите имя хоста из пути входа в систему.
--login-path=name ,
-G name
Путь входа в систему, чтобы удалить или изменить. Путь входа в систему
по умолчанию client , если эта опция не дана.
--password , -p
Удалите пароль из пути входа в систему.
--port , -P
Удалите номер порта TCP/IP из пути входа в систему.
--socket , -S
Удалите имя файла сокета Unix из пути входа в систему.
--user , -u
Удалите имя пользователя из пути входа в систему.
--warn , -w
Предупредите и запросите подтверждение у пользователя,
если команда пытается удалить путь входа в систему по умолчанию
(client ) и не указано --login-path=client .
Эта опция включена по умолчанию, надо использовать --skip-warn ,
чтобы отключить это.
reset [options ]
Сбросьте содержание файла пути входа в систему.
Команда reset разрешает эти опции после названия команды:
--help , -?
Выведите на экран сообщение справки для reset .
Чтобы видеть общее сообщение справки, используйте
mysql_config_editor
--help.
set [options ]
Допишите путь входа в систему к файлу пути входа в систему.
Эта команда пишет в пути входа в систему только такие опции, как
определены с параметрами --host , --password ,
--port , --socket и --user .
Если ни одна из тех опций не дана,
mysql_config_editor
пишет путь входа в систему как пустую группу.
Команда set разрешает эти опции после названия команды:
--help , -?
Выведите на экран сообщение справки для set .
Чтобы видеть общее сообщение справки, используйте
mysql_config_editor --help.
--host=host_name ,
-h host_name
Имя хоста, чтобы написать в пути входа в систему.
--login-path=name ,
-G name
Путь входа в систему, чтобы создать. Путь входа в систему
по умолчанию client , если эта опция не дана.
--password , -p
Запрос пароля, чтобы написать в пути входа в систему. После того, как
mysql_config_editor
выводит на экран подсказку, введите пароль и нажмите
Enter. Чтобы препятствовать тому, чтобы другие пользователи видели пароль
mysql_config_editor
не повторяет его.
Чтобы определить пустой пароль, нажмите Enter при подсказке пароля.
Получающийся путь входа в систему, написанный в файл пути входа в систему,
будет включать такую строку:
password =
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы написать в пути входа в систему.
--socket=file_name ,
-S file_name
Имя файла сокета Unix, чтобы написать в пути входа в систему.
--user=user_name ,
-u user_name
Имя пользователя, чтобы написать в пути входа в систему.
--warn , -w
Предупредите и запросите у пользователя подтверждение, если команда
пытается перезаписать существующий путь входа в систему. Эта опция включена
по умолчанию, надо использовать для выключения --skip-warn .
5.6.8. mysqlbinlog
утилита для обработки двоичных файлов системного журнала
Двоичный журнал сервера состоит из файлов, содержащих
события, которые описывают модификации содержания
базы данных. Сервер пишет эти файлы в двоичном формате. Чтобы вывести на
экран их содержание в текстовом формате, используйте
mysqlbinlog
. Вы можете также использовать
mysqlbinlog
, чтобы вывести на экран содержание файлов системного журнала реле,
написанных ведомым сервером в установке репликации, потому что у журналов
реле есть тот же самый формат, как у двоичных журналов. Двоичный журнал и
журнал реле обсуждены далее в разделах
6.4.4 и
19.2.4.
Вызов mysqlbinlog
:
shell> mysqlbinlog [options ] log_file ...
Например, чтобы вывести на экран содержание двоичного файла системного
журнала binlog.000003 надо:
shell> mysqlbinlog binlog.0000003
Вывод включает события, содержавшиеся в binlog.000003 .
Для основанного на запросе журналирования информация о событии включает
запрос SQL, идентификатор сервера, на котором это было выполнено, timestamp,
когда запрос было выполнено, сколько времени потребовалось и т.д.
Для основанного на строке журналирования событие указывает на изменение
строки, а не запрос SQL. См.
раздел 19.2.1.
Событиям предшествуют комментарии заголовка, которые обеспечивают
дополнительную информацию. Например:
# at 141
#100309 9:28:36 server id 123 end_log_pos 245
Query thread_id=3350 exec_time=11 error_code=0
В первой строке чисор после at
указывает на смещение файла или стартовую позицию события
в двоичном файле системного журнала.
Вторая строка начинается с даты и времени, указывая, когда запрос
запускался на сервере, где событие произошло. Для репликации этот timestamp
размножен к ведомым серверам. server id это
server_id
сервера, где событие произошло. end_log_pos
указывает, где следующее событие начинается (то есть, это позиция конца
текущего события + 1). thread_id указывает, какой поток запускал
событие. exec_time потраченное на выполнение время на главном
сервере. На ведомом устройстве это время конца выполнения на
ведомом устройстве минус время начала выполнения на ведущем устройстве.
Различие служит индикатором того, на сколько репликация отстает от ведущего
устройства. error_code указывает на результат выполнения
события. Ноль означает, что никакая ошибка не произошла.
Используя группы событий, смещения файла событий могут группироваться и
комментарии событий могут группироваться. Не принимайте эти сгруппированные
события за пустые смещения файла.
Вывод mysqlbinlog
может быть повторно выполнен (например, при
использовании этого как входа
mysql), чтобы сделать заново запросы в журнале.
Это полезно для операций восстановления после катастрофического отказа
сервера. Для других примеров использования см. обсуждение позже в этом
разделе и в разделе 8.5.
Обычно Вы используете
mysqlbinlog, чтобы считать двоичные файлы системного
журнала непосредственно и применить их к местному серверу MySQL. Также
возможно считать двоичные журналы из удаленного сервера при использовании
опции
--read-from-remote-server . Чтобы считать удаленные двоичные
журналы, опции параметра соединения могут быть даны, чтобы указать, как
соединиться с сервером. Это опции
--host ,
--password
, --port ,
--protocol
, --socket
и --user
, они проигнорированы кроме тех случаев, когда Вы также используете
--read-from-remote-server .
Выполняя mysqlbinlog
для большого двоичного журнала, надо быть осторожным,
что у файловой системы есть достаточно пространства для получающихся файлов.
Чтобы сконфигурировать каталог для применения
mysqlbinlog
для временных файлов, используйте переменную окружения TMPDIR
.
mysqlbinlog
поддерживает следующие опции, которые могут быть определены в
командной строке или в группах [mysqlbinlog] и [client]
файла опции. Для информации о файлах опции, используемых программами
MySQL, см. раздел 5.2.6.
Таблица 5.18. Опции mysqlbinlog
Формат | Описание
|
--base64-output
| Напечатайте двоичные записи журнала, используя кодировку base-64
|
--bind-address | Используйте определенный сетевой интерфейс, чтобы
соединиться с MySQL Server |
--binlog-row-event-max-size |
Максимальный размер событий двоичного журнала |
--character-sets-dir | Каталог, где наборы символов установлены
|
--connection-server-id | Используется для тестирования и отладки.
См. текст для применимых значений по умолчанию и других подробных сведений
|
--database | Записи списка только для этой базы данных |
--debug | Писать журнал ошибок |
--debug-check | Информация об отладке, когда программа выходит
|
--debug-info | Информация об отладке, памяти и статистика
центрального процессора, когда программа выходит |
--default-auth | Плагин аутентификации, чтобы использовать
|
--defaults-extra-file | Читать этот файл опции в дополнение к
обычным файлам опции |
--defaults-file | Читать только этот файл опции |
--defaults-group-suffix | Групповое значение суффикса опции
|
--disable-log-bin | Отключите двоичное журналирование |
--exclude-gtids | Не показывайте группы в наборе GTID |
--force-if-open | Считайте двоичные файлы системного журнала даже
если они открыты или не закрыты должным образом |
--force-read | Если mysqlbinlog читает событие двоичного журнала,
которое он не понял, он печатает предупреждение |
--help
| Отобразить сообщение справки |
--hexdump | Выведите на экран шестнадцатеричный
дамп журнала в комментариях |
--host | Соединитесь с сервером MySQL на данном хосте |
--idempotent | Заставьте сервер использовать идемпотентный режим,
обрабатывая двоичные обновления журнала только от этого сеанса |
--include-gtids | Покажите только группы в обеспеченном наборе GTID
|
--local-load | Подготовьте местные временные файлы к LOAD DATA
INFILE в указанном каталоге |
--login-path | Считайте опции пути входа в систему из .mylogin.cnf
|
--no-defaults | Не читать файлы опций |
--offset
| Пропустите первые N записей в журнале |
--password | Пароль, чтобы использовать, соединяясь с сервером
|
--plugin-dir | Каталог, где плагины установлены |
--port
| Номер порта TCP/IP, чтобы использовать для соединения |
--print-defaults | Напечатайте опции по умолчанию |
--protocol | Протокол для соединения |
--raw
| Напишите события в сыром (двоичном) формате в выходные файлы
|
--read-from-remote-master | Считайте двоичный журнал с ведущего
устройства MySQL вместо того, чтобы читать местный файл системного журнала
|
--read-from-remote-server | Считайте двоичный журнал с сервера
MySQL, а не местный файл системного журнала |
--result-file | Прямой вывод к названному файлу |
--rewrite-db | Создайте правила подстановки для баз данных,
воспроизводя от журналов, написанных в основанном на строке формате.
Может использоваться многократно. |
--secure-auth | Не посылайте пароли в сервер в
старом формате (pre-4.1) |
--server-id | Извлеките только события, создаваемые сервером,
имеющим данный идентификатор сервера |
--server-id-bits |
Скажите mysqlbinlog, как интерпретировать server ID
в двоичном журнале, когда журнал был написан mysqld, у которого его
server-id-bits меньше, чем максимум, поддержано только версией
MySQL Cluster mysqlbinlog |
--set-charset | Добавить SET NAMES charset_name в вывод |
--shared-memory-base-name | Название совместно используемой памяти,
чтобы использовать для соединений совместно используемой памяти |
--short-form | Выведите на экран только
запросы, содержавшиеся в журнале |
--skip-gtids | Не печатайте GTID, используйте это при записи
файла дампа от двоичных журналов, содержащих GTID |
--socket
| Для соединений с localhost файл сокета Unix |
--ssl-ca
| Путь к файлу, который содержит список доверенных SSL CA |
--ssl-capath | Путь к каталогу, который содержит доверенные
сертификаты SSL CA в формате PEM |
--ssl-cert | Путь к файлу, который содержит
сертификат X509 в формате PEM |
--ssl-cipher | Список разрешенных шифров, чтобы использовать
для шифрования соединения |
--ssl-crl | Путь к файлу, который содержит
списки аннулирования сертификатов |
--ssl-crlpath | Путь к каталогу, который содержит файлы
списка аннулирования сертификатов |
--ssl-key | Путь к файлу, который содержит ключ X509 в формате PEM
|
--ssl-mode | Статус безопасности соединения с сервером |
--start-datetime | Считайте двоичный журнал с первого события
с timestamp, равным или позже, чем параметр datetime |
--start-position | Считайте двоичный журнал с первого события
с позицией, равной или больше, чем параметр |
--stop-datetime | Прекратите читать двоичный журнал на первом
событии с timestamp, равным или больше, чем параметр datetime |
--stop-never | Останьтесь соединенными с сервером после чтения
последнего двоичного файла системного журнала |
--stop-never-slave-server-id | Идентификатор ведомого сервера
|
--stop-position | Прекратите читать двоичный журнал на первом
событии с позицией, равной или больше, чем параметр |
--tls-version | Протоколы для безопасных соединений |
--to-last-log | Не останавливайтесь в конце требуемого двоичного
журнала с сервера MySQL, а продолжайте печать до конца
последнего двоичного журнала |
--user
| Имя пользователя MySQL |
--verbose | Восстановите события строки как запросы SQL |
--verify-binlog-checksum |
Проверьте контрольные суммы в двоичном журнале |
--version | Отобразить информацию о версии |
--help ,
-?
Отобразить сообщение справки.
-
--base64-output=value
Эта опция определяет, что события должны быть выведены на экран
закодированные как base-64 с использованием
BINLOG .
У опции есть эти допустимые значения (нечувствительны к регистру):
AUTO ("automatic") или
UNSPEC ("unspecified") покажет запросы
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 на вывод строки событий, см.
раздел 5.6.8.2.
-
--bind-address=ip_address
На компьютере, имеющем многократные сетевые интерфейсы, используйте эту
опцию, чтобы выбрать который интерфейс использовать для того, чтобы
соединиться с сервером MySQL.
-
--binlog-row-event-max-size=N
Формат командной строки
| --binlog-row-event-max-size=# |
Допустимые значения
(64-bit platforms) | Тип |
numeric |
Значение по умолчанию |
4294967040 |
Минимум |
256 |
Максимум |
18446744073709547520 |
Определите максимальный размер основанного на строке двоичного события
журнала в байтах. Строки сгруппированы в события меньше, чем этот размер,
если возможно. Значение должно быть кратным 256. Значение по умолчанию 4GB.
-
--character-sets-dir=dir_name
Каталог, где наборы символов установлены. См.
раздел 11.5.
-
--connection-server-id=server_id
Эта опция используется, чтобы проверить сервер MySQL на поддержку
флага BINLOG_DUMP_NON_BLOCK , который был неосторожно удален в
MySQL 5.6.5 и восстановлен в MySQL 5.7.5 (Bug #18000079, Bug #71178).
Это не требуется для нормального функционирования.
Эффективное значение по умолчанию и минимальные значения для этой опции
зависят от того, выполнен ли
mysqlbinlog в блочном режиме. Когда
mysqlbinlog
выполнен в блочном режиме, значение по
умолчанию (и минимум) = 1, иначе 0.
-
--database=db_name ,
-d db_name
Эта опция заставляет
mysqlbinlog выводить записи из двоичного журнала (только
местный журнал), которые происходят в то время, как
db_name выбрана как база данных по умолчанию
USE .
--database
подобна
--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 в базе данных test, независимо от
USE и того,
какова база данных по умолчанию.
Если сервер работает с
binlog_format =
MIXED и Вы хотите, чтобы было возможно использовать
mysqlbinlog
с
--database , Вы должны гарантировать, что таблицы, которые
изменены, находятся в базе данных, выбранной USE
. В частности, никакие обновления между базами данных
не должны использоваться.
Когда используется вместе с
--rewrite-db , --rewrite-db
применена сначала, тогда the --database применена, используя
переписанное имя базы данных. Порядок, в котором предоставлены опции, не
имеет никакого значения в этом отношении.
-
--debug[=debug_options ] ,
-# [debug_options ]
Писать журнал отладки. Типичная строка
debug_options
d:t:o,file_name .
Значение по умолчанию d:t:o,/tmp/mysqlbinlog.trace .
-
--debug-check
Напечатайте некоторую информацию об отладке, когда программа выходит.
-
--debug-info
Информация об отладке, памяти и статистика использования центрального
процессора, когда программа выходит.
-
--default-auth=plugin
Подсказка о клиентском плагине аутентификации, чтобы использовать. См.
See раздел 7.3.9.
-
--defaults-extra-file=file_name
Считайте этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
-
--defaults-file=file_name
Используйте только данный файл опции. Если файл не существует или иначе
недоступен, ошибка происходит. file_name
интерпретируется относительно текущего каталога,
если дано как относительный путь, а не полный.
Исключение: Даже с опцией
--defaults-file программы клиента читают
.mylogin.cnf .
-
--defaults-group-suffix=str
Считайте не только обычные группы опции, но также и группы с обычными
именами и суффиксом str . Например,
mysqlbinlog
обычно читает группы [client] и [mysqlbinlog] .
Если дана опция
--defaults-group-suffix=_other ,
mysqlbinlog
также читает группы [client_other] и
[mysqlbinlog_other] .
-
--disable-log-bin , -D
Отключите двоичное журналирование. Это полезно для ухода от бесконечной
петли, если Вы используете
--to-last-log
и посылает вывод в тот же самый сервер MySQL. Эта опция также
полезна, восстанавливая после катастрофического отказа, чтобы избежать
дублирования запросов, которые Вы зарегистрировали.
Эта опция требует, чтобы Вы имели привилегию
SUPER .
mysqlbinlog
добавит в вывод SET sql_log_bin = 0 , чтобы отключить
двоичное журналирование остающегося вывода.
SET
неэффективен, если Вы не имеете привилегии
SUPER .
-
--exclude-gtids=gtid_set
Не выводите на экран ни одну из групп, перечисленных в
gtid_set .
-
--force-if-open , -F
Считайте двоичные файлы системного журнала, даже если они открыты или
не были закрыты должным образом.
-
--force-read , -f
Если mysqlbinlog
читает событие двоичного журнала, которое не понимает, то с этой
опцией, он печатает предупреждение, игнорирует событие и продолжает. Без этой
опции mysqlbinlog
останавливается, если читает такое событие.
-
--hexdump , -H
Выведите на экран шестнадцатеричный дамп журнала в комментариях, как
описано в разделе 5.6.8.1.
Это может быть полезным для отладки репликации.
-
--host=host_name ,
-h host_name
Получите двоичный журнал от сервера MySQL на данном хосте.
-
--idempotent
Предписывает MySQL Server использовать идемпотентный режим, обрабатывая
обновления, это вызывает подавление любых ошибок duplicate-key или
key-not-found, с которыми сервер сталкивается в текущем сеансе, обрабатывая
обновления. Эта опция может оказаться полезной всякий раз, когда желательно
или необходимо переиграть один или более двоичных журналов MySQL Server,
который, возможно, не содержит все данные, к которым обращаются журналы.
Контекст эффекта для этой опции включает только текущий сеанс
mysqlbinlog
.
-
--include-gtids=gtid_set
Выведите на экран только группы, перечисленные в
gtid_set .
-
--local-load=dir_name ,
-l dir_name
Подготовьте местные временные файлы в указанном каталоге к
LOAD DATA INFILE .
Эти временные файлы автоматически не удалены
mysqlbinlog
и никакой другой программой MySQL.
--login-path=name
Считайте опции из названного пути входа в систему в
.mylogin.cnf . login path
является группой опции, содержащей опции, которые определяют, с каким
сервером MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см. раздел
5.6.7.
-
--no-defaults
Не читайте файлы опции. Если запуск программы терпит неудачу из-за чтения
неизвестных опций от файла опции,
--no-defaults
может использоваться, чтобы препятствовать тому, чтобы
они были считаны.
Исключение: файл .mylogin.cnf , если это существует, считан во
всех случаях. Это разрешает паролям быть определенными более безопасным
способом чем в командной строке, даже когда задана опция
--no-defaults
. .mylogin.cnf создается
mysql_config_editor
, см. раздел
5.6.7.
-
--offset=N ,
-o N
Пропустите первые N записей в журнале.
-
--password[=password ] ,
-p[password ]
Пароль, чтобы использовать, соединяясь с сервером. Если Вы используете
короткую форму опции (-p ), у Вас
не может быть пробелов между опцией и паролем.
Если Вы опускаете password после
--password
или -p в командной строке,
mysqlbinlog
спросит пароль явно.
Определение пароля в командной строке нужно считать опасным. См.
раздел 7.1.2.1.
Вы можете использовать файл опции, чтобы избежать давать
пароль в командной строке.
-
--plugin-dir=dir_name
Каталог, в котором можно искать плагины. Определите эту опцию, если
--default-auth
используется, чтобы определить плагин аутентификации, но
mysqlbinlog
его не нашел, см. раздел
7.3.9.
-
--port=port_num ,
-P port_num
Номер порта TCP/IP, чтобы использовать для того, чтобы
соединиться с удаленным сервером.
-
--print-defaults
Напечатайте название программы и все опции, которые это получает
от файлов опции.
-
--protocol={TCP|SOCKET|PIPE|MEMORY}
Протокол соединения, чтобы использовать, чтобы соединиться с сервером.
Полезно, когда другие параметры соединения обычно используют не тот протокол.
-
--raw
По умолчанию mysqlbinlog
читает двоичные файлы системного журнала и пишет события
в текстовом формате.
--raw говорит
mysqlbinlog писать в их оригинальном двоичном формате.
Использование требует, чтобы
--read-from-remote-server также использовалась, потому что файлы
требуют от сервера.
mysqlbinlog пишет выходной файл для каждого файла,
считанного из сервера.
--raw может использоваться, чтобы сделать резервное копирование
двоичного журнала сервера. С
--stop-never
резервное копирование живое, поскольку
mysqlbinlog
остается соединенным с сервером. По умолчанию выходные файлы написаны в
текущем каталоге с теми же самыми именами как оригинальные файлы системного
журнала. Выходные имена файла могут быть изменены, используя
--result-file
. См. раздел 5.6.8.3
.
-
--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 , -R
Считайте двоичной журнал из сервера MySQL вместо того, чтобы читать
местный файл системного журнала. Любые опции параметра соединения
проигнорированы, если эта опция не дана также. Это опции
are --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='from_name ->to_name
'
Читая из основанного на строке или основанного на запросе журнала,
перепишите все возникновения from_name в
to_name . Перезапись сделана на строках, для основанных
на строке журналов, так же как в USE
для основанных на запросе журналов.
Запросы, в которых имена таблиц квалифицированы с именами базы данных, не
переписаны, чтобы использовать новое имя, используя эту опцию.
Правило подстановки, используемое как значение для этой опции, является
строкой, имеющей форму 'from_name ->
to_name ' , как показано ранее, и по этой причине должно
быть экранировано кавычками.
Чтобы использовать многократные правила подстановки, определите опцию
многократно, как показано здесь:
shell> mysqlbinlog --rewrite-db='dbcurrent->dbold' \
--rewrite-db='dbtest->dbcurrent' \
binlog.00001 > /tmp/statements.sql
Когда используется вместе с
--database
, --rewrite-db применена сначала, тогда
--database применена, используя переписанное имя базы данных.
Порядок, в котором предоставлены опции, не имеет никакого
значения в этом отношении.
Это означает, что, например, если
mysqlbinlog
запущен с --rewrite-db='mydb->yourdb' --database=yourdb ,
все обновления любых таблиц в базах данных mydb и
yourdb включены в вывод. С другой стороны, если это запущено с
--rewrite-db='mydb->yourdb' --database=mydb ,
mysqlbinlog
не выводит никакие запросы вообще: все обновления mydb
сначала переписаны как обновления yourdb прежде, чем применить
--database , в результате не остается никаких обновлений,
которые соответствуют --database=mydb .
-
--secure-auth
Не посылайте пароли в сервер в старом формате (pre-4.1).
Эта опция устарела и всегда включается, попытка выключения
(
--skip-secure-auth ,
--secure-auth=0 ) приводит к ошибке.
--server-id=id
Выведите только те события, создаваемые сервером, которые имеют
этот server ID.
-
--set-charset=charset_name
Добавить SET NAMES
charset_name в вывод, чтобы определить набор
символов, который будет использоваться для того, чтобы обработать
файлы системного журнала.
-
--shared-memory-base-name=name
В Windows имя совместно используемой памяти для соединений, сделанных,
используя совместно используемую память для локального сервера.
Значение по умолчанию MYSQL . Имя совместно используемой памяти
является чувствительным к регистру.
Сервер должен быть запущен с
--shared-memory
.
-
--short-form , -s
Выведите только запросы, содержавшиеся в журнале, без любой дополнительной
информации или основанных на строке событий. Это для того, чтобы только
проверить и не должно использоваться в производственных системах.
-
--skip-gtids[=(true|false)]
Не выводите GTID. Это необходимо при записи в файл
дампа от одного или более двоичных журналов, содержащих GTID,
как показано в этом примере:
shell> mysqlbinlog --skip-gtids binlog.000001 > /tmp/dump.sql
shell> mysqlbinlog --skip-gtids binlog.000002 >> /tmp/dump.sql
shell> mysql -u root -p -e "source /tmp/dump.sql"
Использование этой опции иначе обычно не рекомендуется в производстве.
-
--socket=path ,
-S path
Для соединений с localhost файл сокета Unix, в Windows
название именованного канала.
-
--ssl*
Опции, которые начинаются с
--ssl ,
определяют, соединиться ли с сервером, используя SSL, и указывают, где найти
ключи SSL и сертификаты, см.
раздел 7.4.5.
-
--start-datetime=datetime
Начните читать двоичной журнал на первом событии, имеющем timestamp равное
или позже, чем datetime . Значение
datetime относительно зоны местного времени на машине,
где Вы выполняете
mysqlbinlog. Значение должно быть в формате, принятом для
типов DATETIME или
TIMESTAMP :
shell> mysqlbinlog --start-datetime="2005-12-25 11:25:56" binlog.000003
Эта опция полезна для восстановления момента времени. См.
раздел 8.3.
-
--start-position=N ,
-j N
Начните читать двоичной журнал на первом событии, имеющем позицию,
равную или больше, чем N . Эта опция относится к первому
файлу системного журнала, названному в командной строке.
Эта опция полезна для восстановления момента времени. См.
раздел 8.3.
-
--stop-datetime=datetime
Прекратите читать двоичной журнал на первом событии, имеющем timestamp
равное или позже, чем datetime .
Эта опция полезна для восстановления момента времени. См. описание
--start-datetime .
Эта опция полезна для восстановления момента времени. См.
раздел 8.3.
-
--stop-never
Эта опция используется с
--read-from-remote-server . Это говорит
mysqlbinlog
оставаться соединенным с сервером. Иначе
mysqlbinlog
выходит, когда последний файл системного журнала был передан от сервера.
--stop-never
подразумевает
--to-last-log , так что только первый файл системного журнала,
который передается, должен быть названным в командной строке.
--stop-never
обычно используется с
--raw , чтобы
сделать живое двоичное резервное копирование журнала, но также может
использоваться и без
--raw , чтобы поддержать непрерывное текстовое
отображение событий журнала.
-
--stop-never-slave-server-id=id
С --stop-never
mysqlbinlog
сообщает о server ID = 65535, когда он соединяется с
сервером.
--stop-never-slave-server-id
явно определяет идентификатор сервера. Это может использоваться, чтобы
избежать конфликта с ID ведомого сервера или другого процесса
mysqlbinlog
, см. раздел 5.6.8.4.
-
--stop-position=N
Прекратите читать двоичной журнал на первом событии, имеющем позицию,
равную или больше, чем N . Эта опция относится к
последнему файлу системного журнала, названному в командной строке.
Эта опция полезна для восстановления момента времени. См.
раздел 8.3.
-
--tls-version=protocol_list
Протоколы, разрешенные клиентом для зашифрованных соединений.
Значение: список разделенных запятой значений, содержащий одно или более имен
протокола. Протоколы, которые могут быть названы по имени в этой опции,
зависят от библиотеки SSL, использовавшейся, чтобы собрать MySQL. Для деталей
см. раздел 7.4.3
.
-
--to-last-log , -t
Не останавливайтесь в конце требуемого двоичного журнала от сервера MySQL,
а продолжайте печатать до конца последнего двоичного журнала. Если Вы
посылаете вывод в тот же самый сервер MySQL, это может привести к бесконечной
петле. Эта опция требует
--read-from-remote-server .
-
--user=
user_name ,
-u user_name
Имя пользователя MySQL, чтобы использовать,
соединяясь с удаленным сервером.
-
--verbose ,
-v
Восстановите события строки и выведите их на экран
как комментирующийся запрос SQL. Если эта опция дана дважды
("-vv" или "--verbose --verbose"), вывод включает комментарии, чтобы указать
на типы данных столбца и некоторые метаданные, а также события
журнала запроса строки.
Для примеров, которые показывают эффект
--base64-output
и
--verbose на выводе событий строки, см.
раздел 5.6.8.2.
-
--verify-binlog-checksum , -c
Проверьте контрольные суммы в двоичных файлах системного журнала.
-
--version ,
-V
Показать информацию о версии.
Номер версии mysqlbinlog
, показанный, используя эту опцию, 3.4.
Вы можете также установить следующую переменную при использовании
--var_name =value :
Вы можете передать вывод
mysqlbinlog по каналу в
mysql, чтобы
запустить события, содержавшиеся в двоичном журнале. Этот метод используется,
чтобы восстановиться от катастрофического отказа, когда у Вас есть старая
резервная копия (см. раздел 8.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 a.m.).
Если у Вас есть больше, чем один двоичной журнал, чтобы выполнить на
сервере MySQL, безопасный метод должен обработать их все с использованием
единственного соединения с сервером. Вот пример, который демонстрирует то,
что может быть опасно:
shell> mysqlbinlog binlog.000001 | mysql -u root -p # DANGER!!
shell> mysqlbinlog binlog.000002 | mysql -u root -p # DANGER!!
Обработка двоичных журналов этим способом использует много соединений
и создает проблему, если первый файл системного журнала содержит
CREATE TEMPORARY TABLE , а
второй содержит запрос, которое использует временную таблицу.
Когда первый процесс mysql
заканчивается, сервер удаляет
временную таблицу. Когда второй процесс
mysql пытается использовать таблицу, сервер
сообщает unknown table.
Чтобы избежать проблем, используйте один процесс
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
может произвести вывод, который воспроизводит
LOAD DATA INFILE
без оригинального файла с данными.
mysqlbinlog
копирует данные к временному файлу и пишет
LOAD DATA LOCAL INFILE , который относится к файлу.
Местоположение каталога по умолчанию, где эти файлы написаны, является
определенным для системы. Чтобы определить каталог явно, используйте
--local-load
.
Так как mysqlbinlog
преобразовывает
LOAD DATA INFILE в
LOAD DATA LOCAL INFILE
(то есть, добавляет LOCAL ), клиент и сервер, который Вы
используете, чтобы обработать запросы, должны быть сконфигурированы с
включенной поддержкой LOCAL , см.
раздел 7.1.6.
Временные файлы, создаваемые для
LOAD DATA LOCAL ,
не удалены автоматически, потому что они необходимы,
пока Вы фактически не выполняете те запросы. Вы должны удалить временные
файлы самостоятельно после того, как Вы больше не нуждаетесь в журнале.
Файлы могут быть найдены во временном каталоге и иметь имена вроде
original_file_name-#-# .
5.6.8.1. Формат шестнадцатеричного
дампа mysqlbinlog
--hexdump
предписывает
mysqlbinlog производить шестнадцатеричный дамп
содержания двоичного журнала:
shell> mysqlbinlog --hexdump master-bin.000001
Шестнадцатеричный вывод состоит из строк, начинающихся с комментария
# , таким образом, вывод мог бы быть похожим на это
для предыдущей команды:
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
# at 4
#051024 17:24:13 server id 1 end_log_pos 98
# Position Timestamp Type Master ID SizeMaster PosFlags
# 00000004 9d fc 5c 43 0f 01 00 00 00 5e 00 00 00 62 00 00 00 00 00
# 00000017 04 00 35 2e 30 2e 31 35 2d 64 65 62 75 67 2d 6c |..5.0.15.debug.l|
# 00000027 6f 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |og..............|
# 00000037 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
# 00000047 00 00 00 00 9d fc 5c 43 13 38 0d 00 08 00 12 00 |.......C.8......|
# 00000057 04 04 04 04 12 00 00 4b 00 04 1a|.......K...|
# Start: binlog v 4, server v 5.0.15-debug-log created 051024 17:24:13
# at startup
ROLLBACK;
Вывод дампа в настоящее время содержит элементы в следующем списке.
Этот формат подвержен изменениям. Для получения дополнительной информации о
двоичном формате журнала см.
MySQL Internals: The Binary Log.
Position : Позиция байта в пределах
файла системного журнала.
Timestamp : timestamp события. В показанном примере
'9d fc 5c 43' шестнадцатеричное представление '051024
17:24:13' .
Type : Код типа событий. В показанном примере
'0f' означает FORMAT_DESCRIPTION_EVENT .
Следующая таблица приводит возможные коды типа.
Тип | Имя |
Смысл |
00 | UNKNOWN_EVENT
| Это событие никогда не должно присутствовать в журнале |
01 | START_EVENT_V3 |
Это указывает на начало файла системного журнала, написанного
MySQL 4 или ранее |
02 | QUERY_EVENT |
Наиболее распространенный тип событий. Они содержат запросы, выполненные
на ведущем устройстве |
03 | STOP_EVENT |
Указывает, что ведущее устройство остановилось |
04 | ROTATE_EVENT |
Записан, когда ведущее устройство переключается на новый
файл системного журнала |
05 | INTVAR_EVENT |
Применяется для значений AUTO_INCREMENT или функция
LAST_INSERT_ID()
используется в текущем запросе |
06 | LOAD_EVENT |
Применяется для LOAD DATA
INFILE в MySQL 3.23 |
07 | SLAVE_EVENT |
Зарезервировано на будущее |
08 | CREATE_FILE_EVENT
| Применяется для LOAD DATA
INFILE . Это указывает на запуск выполнения такого запроса.
Временный файл создается на ведомом устройстве. Используемый только в MySQL 4
|
09 | APPEND_BLOCK_EVENT
| Содержит данные для использования в
LOAD DATA INFILE .
Данные хранятся во временном файле на ведомом устройстве |
0a | EXEC_LOAD_EVENT |
Применяется для LOAD DATA
INFILE . Содержание временного файла сохранено в таблице на
ведомом устройстве. Используемый только в MySQL 4 |
0b | DELETE_FILE_EVENT
| Отмена LOAD DATA INFILE .
Временный файл должен быть удален на ведомом устройстве |
0c | NEW_LOAD_EVENT |
Применяется для LOAD DATA
INFILE в MySQL 4 и ранее |
0d | RAND_EVENT |
Используемый, чтобы послать информацию о случайных значениях, если в запросе
применяется функция RAND()
|
0e | USER_VAR_EVENT |
Используемый, чтобы копировать пользовательские переменные |
0f | FORMAT_DESCRIPTION_EVENT
| Это указывает на запуск файла системного журнала, написанного
MySQL 5 или позже |
10 | XID_EVENT |
Событие commit для транзакции XA |
11 | BEGIN_LOAD_QUERY_EVENT
| Применяется для LOAD DATA
INFILE в MySQL 5 или позже |
12 | EXECUTE_LOAD_QUERY_EVENT
| Применяется для LOAD DATA
INFILE в MySQL 5 или позже |
13 | TABLE_MAP_EVENT |
Информация о табличном определении. Используется в MySQL 5.1.5 и позже
|
14 | PRE_GA_WRITE_ROWS_EVENT
| Данные о строке для единственной таблицы, которая
должна быть составлена. Используемый в MySQL 5.1.5-5.1.17 |
15 | PRE_GA_UPDATE_ROWS_EVENT
| Данные о строке для единственной таблицы, которая
должна быть обновлена. Используемый в MySQL 5.1.5-5.1.17 |
16 | PRE_GA_DELETE_ROWS_EVENT
| Данные о строке для единственной таблицы, которая
должна быть удалена. Используемый в MySQL 5.1.5-5.1.17 |
17 | WRITE_ROWS_EVENT
| Данные о строке для единственной таблицы, которая
должна быть составлена. Используемый в MySQL 5.1.18 и позже |
18 | UPDATE_ROWS_EVENT
| Данные о строке для единственной таблицы, которая
должна быть обновлена. Используемый в 5.1.18 и позже |
19 | DELETE_ROWS_EVENT
| Данные о строке для единственной таблицы, которая
должна быть удалена. Используемый в MySQL 5.1.18 и позже |
1a | INCIDENT_EVENT |
Что-то необычное произошло. Добавлен в MySQL 5.1.18
|
Master ID : ID сервера ведущего устройства,
которое создало событие.
Size : Размер события в байтах.
Master Pos : Позиция следующего события
в оригинальном основном файле системного журнала.
Flags : 16 флагов. Следующие флаги используются.
Другие сохранены для будущего использования.
Флаг | Имя |
Смысл |
01 |
LOG_EVENT_BINLOG_IN_USE_F |
Файл системного журнала правильно закрылся. Используется только в
FORMAT_DESCRIPTION_EVENT . Если этот флаг установлен (если флаги,
например, '01 00' ) в FORMAT_DESCRIPTION_EVENT ,
файл системного журнала не был должным образом закрыт. Наиболее вероятно, это
из-за основного катастрофического отказа (например, из-за перебоя в питании)
|
02 | |
Зарезервировано на будущее |
04 |
LOG_EVENT_THREAD_SPECIFIC_F |
Установлен, если событие зависит от соединения (например,
'04 00' ), например, если событие использует временные таблицы
|
08 | LOG_EVENT_SUPPRESS_USE_F
| Установлен при некоторых обстоятельствах, когда событие
не зависит от базы данных по умолчанию |
5.6.8.2.
Показ строк событий в mysqlbinlog
Следующие примеры иллюстрируют, как
mysqlbinlog
выводит на экран события строки, которые определяют модификации данных.
Они соответствуют событиям с кодами типов
WRITE_ROWS_EVENT , UPDATE_ROWS_EVENT и
DELETE_ROWS_EVENT . Опции
--base64-output=DECODE-ROWS и
--verbose
могут использоваться, чтобы затронуть вывод строки событий.
Предположите, что сервер использует основанное на строке двоичное
журналирование и что Вы выполняете следующую последовательность запросов:
CREATE TABLE t (id INT NOT NULL, name VARCHAR(20) NOT NULL,
date DATE NULL) ENGINE = InnoDB;
START TRANSACTION;
INSERT INTO t VALUES(1, 'apple', NULL);
UPDATE t SET name = 'pear', date = '2009-01-01' WHERE id = 1;
DELETE FROM t WHERE id = 1;
COMMIT;
По умолчанию mysqlbinlog
выводит на экран события строки, закодированные как
строки base-64 с использованием
BINLOG . Опуская посторонние строки,
вывод для событий строки, произведенных предыдущей последовательностью
запросов, похож на это:
shell> mysqlbinlog log_file
...
# at 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ==
'/*!*/;
...
# at 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
...
# at 400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP
'/*!*/;
Чтобы рассмотреть события строки как комментарии в форме
pseudo-SQL, выполните
mysqlbinlog
с --verbose
или -v . Вывод будет содержать
строки, начинающиеся с ### :
shell> mysqlbinlog -v log_file
...
# at 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### INSERT INTO test.t
### SET
### @1=1
### @2='apple'
### @3=NULL
...
# at 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### UPDATE test.t
### WHERE
### @1=1
### @2='apple'
### @3=NULL
### SET
### @1=1
### @2='pear'
### @3='2009:01:01'
...
# at 400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP
'/*!*/;
### DELETE FROM test.t
### WHERE
### @1=1
### @2='pear'
### @3='2009:01:01'
Определите --verbose
или -v дважды, чтобы также вывести на экран типы
данных и некоторые метаданные для каждого столбца. Вывод будет содержать
дополнительный комментарий после каждого изменения столбца:
shell> mysqlbinlog -vv log_file
...
# at 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAANoAAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBcBAAAAKAAAAAIBAAAQABEAAAAAAAEAA//8AQAAAAVhcHBsZQ==
'/*!*/;
### INSERT INTO test.t
### SET
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='apple' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */
...
# at 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAC4BAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBgBAAAANgAAAGQBAAAQABEAAAAAAAEAA////AEAAAAFYXBwbGX4AQAAAARwZWFyIbIP
'/*!*/;
### UPDATE test.t
### WHERE
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='apple' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3=NULL /* VARSTRING(20) meta=0 nullable=1 is_null=1 */
### SET
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='pear' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3='2009:01:01' /* DATE meta=0 nullable=1 is_null=0 */
...
# at 400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F
BINLOG '
fAS3SBMBAAAALAAAAJABAAAAABEAAAAAAAAABHRlc3QAAXQAAwMPCgIUAAQ=
fAS3SBkBAAAAKgAAALoBAAAQABEAAAAAAAEAA//4AQAAAARwZWFyIbIP
'/*!*/;
### DELETE FROM test.t
### WHERE
### @1=1 /* INT meta=0 nullable=0 is_null=0 */
### @2='pear' /* VARSTRING(20) meta=20 nullable=0 is_null=0 */
### @3='2009:01:01' /* DATE meta=0 nullable=1 is_null=0 */
Вы можете сказать
mysqlbinlog подавлять
BINLOG для событий строки при
использовании опции
--base64-output=DECODE-ROWS . Это подобно
--base64-output=NEVER , но не выходит с ошибкой, если событие
строки найдено. Комбинация
--base64-output=DECODE-ROWS и
--verbose
обеспечивает удобный способ рассмотреть события строки только
как запросы SQL:
shell> mysqlbinlog -v --base64-output=DECODE-ROWS log_file
...
# at 218
#080828 15:03:08 server id 1 end_log_pos 258 Write_rows: table id 17 flags: STMT_END_F
### INSERT INTO test.t
### SET
### @1=1
### @2='apple'
### @3=NULL
...
# at 302
#080828 15:03:08 server id 1 end_log_pos 356 Update_rows: table id 17 flags: STMT_END_F
### UPDATE test.t
### WHERE
### @1=1
### @2='apple'
### @3=NULL
### SET
### @1=1
### @2='pear'
### @3='2009:01:01'
...
# at 400
#080828 15:03:08 server id 1 end_log_pos 442 Delete_rows: table id 17 flags: STMT_END_F
### DELETE FROM test.t
### WHERE
### @1=1
### @2='pear'
### @3='2009:01:01'
Вы не должны подавить BINLOG ,
если Вы намереваетесь повторно выполнить вывод
mysqlbinlog
.
Запросы SQL, произведенные
--verbose
для строки события намного больше читаемы, чем соответствующие
BINLOG . Однако, они не
соответствуют точно оригинальным запросам SQL, которые произвели события.
Следующие ограничения применяются:
Правильная интерпретация событий строки запрашивает информацию от
описания формата в начале двоичного журнала. Поскольку
mysqlbinlog
не знает заранее, содержит ли остальная часть журнала события строки, по
умолчанию это выводит на экран описание формата, используя
BINLOG в начальной части вывода.
Если двоичной журнал не содержит какие-либо события, требующие
BINLOG
(то есть, никаких событий строки),
--base64-output=NEVER может использоваться, чтобы препятствовать
тому, чтобы этот заголовок был написан.
5.6.8.3. Применение mysqlbinlog для
резервирования двоичных файлов системного журнала
По умолчанию mysqlbinlog
читает двоичные файлы системного журнала и выводит на
экран их содержание в текстовом формате. Это позволяет Вам изучить
события в пределах файлов более легко и повторно выполнить их (например, при
использовании вывода как входа для
mysql).
mysqlbinlog
может считать файлы системного журнала непосредственно из местной
файловой системы или с опцией
--read-from-remote-server это может соединиться с сервером и
запросить содержание журнала с того сервера.
mysqlbinlog
пишет текстовый вывод на стандартный вывод или в файл, названный как
значение опции
--result-file=file_name , если та опция дана.
mysqlbinlog
может считать двоичные файлы системного журнала и написать новые
файлы, содержащие тот же самый контент, то есть, в текстовом, а не в двоичном
формате. Эта способность позволяет легко поддержать журнал регистрации
в его оригинальном формате.
mysqlbinlog может сделать статическое резервное
копирование, поддерживая ряд файлов системного журнала и останавливаясь,
когда конец последнего файла достигнут. Это может также сделать непрерывное
(живое) резервное копирование, оставаясь
соединенным с сервером, когда это достигает конца последнего файла системного
журнала и продолжая копировать новые события, когда они произведены.
В непрерывно-резервной работе
mysqlbinlog
выполняется до конца соединения (например, когда сервер завершается)
или mysqlbinlog
явно закончен. Когда соединение заканчивается,
mysqlbinlog
не ждет и повторяет соединение, в отличие от ведомого сервера
репликации. Чтобы продолжить живое резервное копирование после того, как
сервер был перезапущен, Вы должны также перезапустить
mysqlbinlog
.
Двоичное резервное копирование журнала требует, чтобы Вы вызвали
mysqlbinlog
минимум с двумя опциями:
Наряду с
--read-from-remote-server , стоит определить другие опции:
--host
указывает, где сервер работает, и Вы, возможно, также должны определить
такие опции соединения, как
--user и
--password .
Несколько других опций полезны в соединении с
--raw :
Чтобы поддержать двоичные файлы системного журнала сервера с
mysqlbinlog
, Вы должны определить имена файла, которые фактически существуют на
сервере. Если Вы не знаете имена, соединяетесь с сервером и используете
SHOW BINARY LOGS , чтобы
видеть текущие имена. Предположите, что запрос производит этот вывод:
mysql> SHOW BINARY LOGS;
+---------------+-----------+
| Log_name | File_size |
+---------------+-----------+
| binlog.000130 | 27459 |
| binlog.000131 | 13719 |
| binlog.000132 | 43268 |
+---------------+-----------+
С этой информацией Вы можете использовать
mysqlbinlog
, чтобы поддержать двоичной журнал к текущему каталогу следующим образом
(введите каждую команду в одну строку):
Чтобы сделать статическое резервное копирование с
binlog.000130 до binlog.000132 , используйте любую
из этих команд:
mysqlbinlog --read-from-remote-server --host=host_name --raw
binlog.000130 binlog.000131 binlog.000132
mysqlbinlog --read-from-remote-server --host=host_name --raw
--to-last-log binlog.000130
Первая команда определяет каждое имя файла явно.
Вторая называет только первый файл и использует
--to-last-log
, чтобы читать последний. Различие между этими командами: если
сервер открывает binlog.000133 до того, как
mysqlbinlog
достигает конца binlog.000132 ,
первая команда не будет читать это, но вторая команда будет.
- Чтобы сделать живое резервное копирование, в котором
mysqlbinlog
запускается с
binlog.000130 , чтобы скопировать
существующие файлы системного журнала, а затем остается соединенным с
сервером и копирует новые события, когда сервер производит их:
mysqlbinlog --read-from-remote-server --host=host_name
--raw --stop-never binlog.000130
С --stop-never
не надо определять
--to-last-log
, чтобы читать последний файл системного журнала, потому что
эта опция подразумевается.
Выходное обозначение файла
Без --raw
mysqlbinlog
производит текстовый вывод, и если есть опция
--result-file
, определяет название единственного файла, в который написан весь
вывод. С --raw
mysqlbinlog
пишет один файл вывода для каждого файла системного журнала, переданного
с сервера. По умолчанию
mysqlbinlog пишет файлы в текущем каталоге с теми же
самыми именами, как оригинальные файлы системного журнала. Чтобы изменить
выходные имена файла, используйте
--result-file
. В соединении с
--raw значение опции
--result-file
обработано как приставка, которая изменяет выходные имена файлов.
Предположите, что серверу в настоящее время указали файлы системного
журнала binlog.000999 и выше. Если Вы используете
mysqlbinlog --raw
, чтобы зарезервировать файлы,
--result-file
производит выходные имена файла как показано в следующей таблице.
Вы можете написать файлы в определенный каталог, используя
--result-file
с путем к каталогу. Если
--result-file
состоит только из имени каталога, значение должно закончиться
символом разделителя пути. Выходные файлы перезаписаны, если они существуют.
Пример: mysqldump + mysqlbinlog
для резервного копирования и восстановления
Следующий пример описывает простой скрипт, который показывает, как
использовать mysqldump
и
mysqlbinlog вместе, чтобы поддержать данные сервера и
двоичный журнал, и как использовать резервное копирование, чтобы восстановить
сервер, если потеря данных происходит. Пример предполагает, что сервер
работает на хосте host_name и его первый двоичной файл
системного журнала называется binlog.000999 .
Введите каждую команду в одну строку.
Используйте mysqlbinlog
, чтобы сделать непрерывное резервное
копирование двоичного журнала:
mysqlbinlog --read-from-remote-server --host=host_name
--raw --stop-never binlog.000999
Используйте mysqldump
, чтобы создать файл дампа как снимок данных сервера.
Используйте
--all-databases ,
--events и
--routines ,
чтобы зарезервировать все данные и
--master-data=2
, чтобы включить текущие координаты двоичного
журнала в файл дампа.
mysqldump --host=host_name --all-databases --events \
--routines --master-data=2dump_file
Выполните mysqldump
периодически, чтобы создать более новые снимки.
Если потеря данных происходит (например, если сервер отказывает),
используйте новый файл дампа, чтобы восстановить данные:
mysql --host=host_name -u root -p < dump_file
Теперь используйте двоичное резервное копирование журнала, чтобы повторно
запустить события, которые были написаны после координат в файле дампа.
Предположите, что координаты в файле похожи на это:
-- CHANGE MASTER TO MASTER_LOG_FILE='binlog.001002', MASTER_LOG_POS=27284;
Если новый файл системного журнала называют binlog.001004 ,
повторно запустите события журнала так:
mysqlbinlog --start-position=27284 binlog.001002 binlog.001003 binlog.001004
| mysql --host=host_name -u root -p
Вы могли бы счесть, что легче скопировать резервные файлы (файл дампа и
двоичные файлы системного журнала) на хост сервера, чтобы облегчить работу
восстановления, или если MySQL не позволяет удаленный доступ root
.
5.6.8.4.
Определение mysqlbinlog Server ID
При вызове с опцией --read-from-remote-server
mysqlbinlog
соединяется с сервером MySQL, определяет идентификатор сервера, чтобы
идентифицировать себя, и просит двоичные файлы системного журнала от сервера.
Вы можете использовать
mysqlbinlog, чтобы запросить файлы системного журнала от
сервера несколькими способами:
Только с
--read-from-remote-server
mysqlbinlog
соединяется с использованием ID = 0, который говорит серверу разъединять
связь после посылки последнего требуемого файла системного журнала.
С
--read-from-remote-server и
--stop-never
mysqlbinlog
соединяется с использованием ID, отличного от нуля,
таким образом, сервер не разъединяет связь после посылки последнего файла
системного журнала. Идентификатор сервера 65535 по умолчанию, но это может
быть изменено опцией
--stop-never-slave-server-id .
Таким образом, для первых двух способов запросить файлы, сервер
разъединяет связь, потому что
mysqlbinlog указывает server ID = 0.
Это не разъединяет связь, если
--stop-never
дана, потому что
mysqlbinlog определяет идентификатор сервера,
отличный от нуля.
5.6.9. mysqldumpslow
обзор файлов медленного системного журнала
Медленный журнал запроса MySQL содержит информацию о запросах,
которые занимают много времени (см.
раздел 6.4.5).
mysqldumpslow
разбирает MySQL файлы медленного системного журнала запроса и
печатает резюме их содержания.
Обычно mysqldumpslow
группирует запросы, которые подобны за исключением
особых значений числа, и представляют значения данных в виде строки. Это
абстрагирует эти значения к
N и 'S' , выводя на экран итоговый вывод.
Опции -a и -n могут использоваться, чтобы изменить
поведение реферирования значения.
Вызов mysqldumpslow
:
shell> mysqldumpslow [options ] [log_file ...]
mysqldumpslow
поддерживает следующие опции.
Таблица 5.19. Опции
mysqldumpslow
Формат | Описание
|
-a |
Не резюмируйте все числа к N и строки к S |
-n |
Отвлеченные числа с, по крайней мере, указанным количеством цифр
|
--debug
| Писать информацию об отладке |
-g
| Только рассмотрите запросы, которые соответствуют образцу |
--help
| Вывести справочное сообщение |
-h
| Имя хоста сервера в имени файла системного журнала |
-i
| Название экземпляра сервера |
-l
| Не вычитайте время блокировки из полного времени |
-r
| Реверсировать порядок сортировки |
-s
| Как сортировать вывод |
-t
| Выведите на экран только первые цифровые запросы |
--verbose | Подробный режим вывода |
--help
Отобразить сообщение справки.
-a
Не резюмируйте все числа к N и строки к 'S' .
-
--debug ,
-d
Работа в режиме отладки.
-
-g pattern
Рассмотрите только запросы, которые соответствуют
образцу в стиле (grep).
-
-h host_name
Имя хоста сервера MySQL для имени файла *-slow.log .
Значение может содержать подстановочный знак.
Значение по умолчанию * (все).
-
-i name
Название экземпляра сервера (используя скрипт
mysql.server).
-l
Не вычитайте время блокировки из полного времени.
-
-n N
Отвлеченные числа с, по крайней мере, N
цифрами в пределах имен.
-r
Реверсировать порядок сортировки.
-
-s sort_type
Как сортировать вывод. Значение sort_type
должно быть выбрано из следующего списка:
По умолчанию
mysqldumpslow сортирует по
среднему времени запроса (эквивалентно -s at ).
-
-t N
Выведите на экран только первые N запросов в выводе.
-
--verbose
, -v
Подробный режим. Напечатать больше информации о том,
что делает программа.
Пример использования програмы:
shell> mysqldumpslow
Reading mysql slow query log from /usr/local/mysql/data/mysqld51-apple-slow.log
Count: 1 Time=4.32s (4s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
insert into t2 select * from t1
Count: 3 Time=2.53s (7s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
insert into t2 select * from t1 limit N
Count: 3 Time=2.13s (6s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
insert into t1 select * from t1
5.7. Утилиты развития MySQL
Этот раздел описывает некоторые утилиты, которые Вы можете счесть
полезными, развивая программы MySQL.
В скриптах оболочки Вы можете использовать
my_print_defaults, чтобы разобрать файлы
опции и видеть, какие опции использовались бы данной программой.
Следующий пример показывает вывод
my_print_defaults, который
мог быть произведен, когда запрошено показать варианты, найденные в
группах [client] и [mysql] :
shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash
Отметьте: обработка файла опции осуществлена в библиотеке клиента C, просто
обрабатывая все опции в соответствующей группе или группах перед любыми
параметрами командной строки. Это работает хорошо в программах, которые
используют последний случай опции, которая определена многократно.
Если у Вас есть C или C++ программа, которая обрабатывает
определенные многократно опции этим путем, но не читает файлы опции, Вы
должны добавить только три строки, чтобы дать такую возможность.
Проверьте исходный код любого из стандартных клиентов MySQL, чтобы увидеть,
как сделать это.
Несколько других языковых интерфейсов к MySQL основаны на библиотеке
клиента C и некоторые из них обеспечивают способ получить доступ к содержанию
файла опции. Они включают Perl и Python. Для деталей см. документацию
для своего интерфейса.
5.7.1.
mysql_config показ опций
для компилирования клиентов
mysql_config
предоставляет Вам полезную информацию для того, чтобы собрать
Вашего клиента MySQL и соединить с MySQL. Это скрипт оболочки, таким образом,
это доступно только в Unix и подобных Unix системах.
pkg-config может использоваться в качестве
альтернативы mysql_config
, чтобы получить такую информацию, как флаги компилятора
или библиотеки требуемые, чтобы собирать приложения MySQL. Для получения
дополнительной информации см.
раздел 25.8.4.2.
Для двоичных дистрибутивов для Solaris
mysql_config
не обеспечивает параметры соединения со встроенной библиотекой.
Чтобы получить параметры соединения с встроенной библиотекой, используйте
скрипт mysql_server_config.
mysql_config
поддерживает следующие опции.
--cflags
Флаги компилятора C, чтобы найти включаемые файлы и определения,
используемые, собирая библиотеку libmysqlclient .
Опции возвращаются, привязанные к определенному компилятору, который
использовался, когда библиотека создавалась, и не факт, что подойдут
для Вашего собственного компилятора. Используйте
--include
для большего количества портабельных опций, которые содержат
только включаеме пути.
-
--cxxflags
Аналог --cflags
, но для компилятора C++.
-
--include
Опции компилятора, чтобы найти включаемые файлы MySQL.
-
--libmysqld-libs ,
--embedded
Библиотеки и опции, требуемые, чтобы соединяться с
встраиваемым сервером MySQL.
-
--libs
Библиотеки и опции, требуемые, чтобы соединяться с
библиотекой клиента MySQL.
-
--libs_r
Библиотеки и опции, требуемые, чтобы соединяться с поточно-безопасной
библиотекой клиента MySQL. В MySQL 8.0 все библиотеки клиента
поточно-безопасны, таким образом, эта опция не должна использоваться.
Опция --libs
может использоваться во всех случаях.
-
--plugindir
Имя пути к каталогу плагинов по умолчанию,
определенное, конфигурируя MySQL.
-
--port
Значение по умолчанию порта TCP/IP, определенное, конфигурируя MySQL.
-
--socket
Файл сокета Unix по умолчанию, определенный, конфигурируя MySQL.
-
--variable=
var_name
Выведите на экран значение названной переменной конфигурации. Допустимые
var_name : pkgincludedir (каталог
заголовочных файлов), pkglibdir (каталог библиотек) и
plugindir (каталог плагинов).
-
--version
Номер версии для дистрибутива MySQL.
Если Вы вызываете
mysql_config без опций, он выводит на экран список всех
опций, которые он поддерживает, и их значения:
shell> mysql_config
Usage: /usr/local/mysql/bin/mysql_config [options]
Options:
--cflags [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro]
--cxxflags [-I/usr/local/mysql/include/mysql -mcpu=pentiumpro]
--include[-I/usr/local/mysql/include/mysql]
--libs [-L/usr/local/mysql/lib/mysql -lmysqlclient
-lpthread -lm -lrt -lssl -lcrypto -ldl]
--libs_r [-L/usr/local/mysql/lib/mysql -lmysqlclient_r
-lpthread -lm -lrt -lssl -lcrypto -ldl]
--plugindir[/usr/local/mysql/lib/plugin]
--socket [/tmp/mysql.sock]
--port [3306]
--version[5.8.0-m17]
--libmysqld-libs [-L/usr/local/mysql/lib/mysql -lmysqld
-lpthread -lm -lrt -lssl -lcrypto -ldl -lcrypt]
--variable=VAR VAR is one of:
pkgincludedir [/usr/local/mysql/include]
pkglibdir [/usr/local/mysql/lib]
plugindir [/usr/local/mysql/lib/plugin]
Вы можете использовать
mysql_config в пределах командной строки,
используя обратные галочки, чтобы включать вывод, который он производит для
особых опций. Например, чтобы собрать программу клиента MySQL, используйте
mysql_config
:
gcc -c `mysql_config --cflags` progname.c
gcc -o progname progname.o `mysql_config --libs`
5.7.2.
my_print_defaults
показ опций из файлов опций
my_print_defaults
выводит на экран опции, которые присутствуют в группах
опции файлов опции. Вывод указывает на то, какие опции будут использоваться
программами, которые читают указанные группы опции. Например,
mysqlcheck
читает группы [mysqlcheck] и [client] .
Чтобы видеть, какие опции присутствуют в тех группах в стандартных файлах
опции, вызовите
my_print_defaults так:
shell> my_print_defaults mysqlcheck client
--user=myusername
--password=secret
--host=localhost
Вывод состоит из опций, по одной в строке,
в той форме, как они были бы определены в командной строке.
my_print_defaults
поддерживает следующие опции.
--help ,
-?
Отобразить сообщение справки.
-
--config-file=file_name ,
--defaults-file=file_name ,
-c file_name
Читать только данный файл опции.
-
--debug=
debug_options ,
-# debug_options
Писать журнал отладки. Типичная строка
debug_options
d:t:o,file_name .
Значение по умолчанию d:t:o,/tmp/my_print_defaults.trace .
-
--defaults-extra-file=file_name ,
--extra-file=file_name ,
-e file_name
Считайте этот файл опции после глобального файла опции, но (в Unix)
перед пользовательским файлом опции.
-
--defaults-group-suffix=suffix ,
-g suffix
В дополнение к группам, названным на командной строке, считайте группы,
у которых есть данный суффикс.
-
--login-path=name ,
-l name
Считайте опции из названного пути входа в систему в файле пути входа в
систему .mylogin.cnf . login path
является группой, содержащей опции, которые определяют, с каким сервером
MySQL соединиться и как подтвердить подлинность.
Чтобы создать или изменить файл пути входа в систему, используйте
mysql_config_editor
, см. раздел
5.6.7.
-
--no-defaults , -n
Возвратите пустую строку.
-
--show ,
-s
my_print_defaults
маскирует пароли по умолчанию. Используйте эту опцию,
чтобы вывести на экран пароли в открытом тексте.
-
--verbose
, -v
Подробный режим. Напечатайте больше информации о том,
что делает программа.
-
--version
, -V
Показать информацию о версии.
5.7.3.
resolve_stack_dump
преобразование числового дампа трассировки стека к символам
resolve_stack_dump преобразует числовой
дамп трассировки стека к символам.
Вызов
resolve_stack_dump:
shell> resolve_stack_dump [options ] symbols_file
[numeric_dump_file ]
Файл символов должен включать вывод от команды nm
--numeric-sort mysqld. Числовой файл дампа должен содержать
числовую трассировку стека от
mysqld. Если никакой числовой файл дампа не называют в
командной строке, трассировка стека считана из стандартного ввода.
resolve_stack_dump
поддерживает следующие опции.
См. раздел 26.5.1.5.
5.8. Разные программы
5.8.1. lz4_decompress
распаковывает сжатый LZ4 вывод mysqlpump
lz4_decompress
распаковывает вывод
mysqlpump,
который создавался, используя сжатие LZ4.
Если MySQL был сконфигурирован с опцией
-DWITH_LZ4=system
, lz4_decompress
не создана. В этом случае системная команда
lz4 может использоваться вместо этого.
Вызов lz4_decompress
:
shell> lz4_decompress input_file output_file
Например:
shell> mysqlpump --compress-output=LZ4 > dump.lz4
shell> lz4_decompress dump.lz4 dump.txt
Чтобы увидеть сообщение справки, вызовите
lz4_decompress
без параметров вообще.
Чтобы распаковать ZLIB-сжатый вывод
mysqlpump, используйте
zlib_decompress
. См. раздел 5.8.5.
5.8.2. perror
объясняет коды ошибки
Для большинства системных ошибок MySQL в дополнение к внутреннему
текстовому сообщению, показывает системный код ошибки в одном
из следующих стилей:
message ... (errno: #)
message ... (Errcode: #)
Вы можете узнать то, что код ошибки подразумевает, изучая
документацию для Вашей системы или при использовании
perror.
perror
печатает описание для системного кода ошибки или для кода ошибки механизма
хранения (табличный обработчик).
Вызов perror
:
shell> perror [options ] errorcode ...
Например:
shell> perror 13 64
OS error code 13: Permission denied
OS error code 64: Machine is not on the network
Чтобы получить сообщение об ошибке для кода ошибки MySQL Cluster, вызовите
perror с
опцией --ndb :
shell> perror --ndb errorcode
Значение системных сообщений об ошибках может зависеть от Вашей операционной
системы. Данный код ошибки может означать разные вещи на
различных операционных системах.
perror поддерживает следующие опции.
--help ,
--info ,
-I , -?
Отобразить сообщение справки.
-
--ndb
Напечатайте сообщение об ошибке для кода ошибки MySQL Cluster.
-
--silent ,
-s
Тихий режим. Напечатайте только сообщение об ошибке.
-
--verbose ,
-v
Подробный режим. Печатается код ошибки и сообщение.
Это поведение по умолчанию.
-
--version ,
-V
Показать информацию о версии.
5.8.3.
replace утилита строковой замены
replace
изменяет строки в файлах или стандартном вводе.
Вызов replace
выполняется одним из следующих способов:
shell> replace from to
[from to ] ...
-- file_name [file_name ] ...
shell> replace from to
[from to ] ...
< file_name
from представляет строку, чтобы искать, а
to представляет ее замену. Могут быть одна или
более пар строк.
Опция -- нужна, чтобы указать, где конец списка строковой
замены и начало имен файлов. В этом случае, любой файл, названный в командной
строке, изменен, таким образом, Вы можете хотеть сделать копию оригинала
прежде, чем преобразовать это. replace печатает
сообщение, указывающее, какой из вводных файлов фактически изменен.
Если опции -- нет,
replace читает стандартный ввод и пишет
на стандартный вывод.
replace
использует конечный автомат, чтобы соответствовать более длинным
строкам сначала. Это может использоваться, чтобы обменивать строки. Например,
следующяя команда обменивает строки a и b в данных
файлах file1 и file2 :
shell> replace a b b a -- file1 file2 ...
replace поддерживает следующие опции.
-? , -I
Отобразить сообщение справки.
-
-#debug_options
Включить режим отладки.
-s
Тихий режим. Напечатайте меньше информации, что делает программа.
-v
Подробный режим. Напечатайте больше информации о том,
что делает программа.
-V
Показать информацию о версии.
5.8.4. resolveip
преобразование имени хоста к IP-адресу или наоборот
resolveip
обеспечивает преобразование имени хоста к IP-адресу и наоборот.
Вызов resolveip
:
shell> resolveip [options ]
{host_name |ip-addr } ...
resolveip поддерживает следующие опции.
--help ,
--info ,
-? , -I .
Отобразить сообщение справки.
-
--silent ,
-s
Тихий режим. Произведите меньше вывода.
-
--version ,
-V
Показать информацию о версии.
5.8.5.
zlib_decompress
распаковывает ZLIB-сжатый вывод mysqlpump
zlib_decompress
распаковывает ZLIB-сжатый вывод
mysqlpump.
Если MySQL был сконфигурирован с опцией
-DWITH_ZLIB=system
, zlib_decompress
не создана. В этом случае системная команда
openssl zlib может использоваться вместо этого.
Вызов zlib_decompress
:
shell> zlib_decompress input_file output_file
Например:
shell> mysqlpump --compress-output=ZLIB > dump.zlib
shell> zlib_decompress dump.zlib dump.txt
Чтобы увидеть справочное сообщение, вызовите
zlib_decompress без параметров.
Чтобы распаковать вывод
mysqlpump, сжатый LZ4, примените
lz4_decompress
. См. раздел 5.8.1.
5.9.
Переменные окружения программы MySQL
Этот раздел перечисляет переменные окружения, которые используются прямо
или косвенно MySQL. Большинство из них может также быть найдено в других
местах в этом руководстве.
Опции в командной строке имеют приоритет перед значениями, определенными в
файлах опции и переменных окружения, а значения в файлах опции имеют
приоритет перед значениями в переменных окружения. Во многих случаях
предпочтительно использовать файл опции вместо переменных окружения, чтобы
изменить поведение MySQL. См. раздел
5.2.6.
Переменная | Описание
|
CXX |
Название Вашего компилятора C++ (для того, чтобы выполнить
CMake). |
CC |
Название Вашего компилятора C (для того, чтобы выполнить
CMake). |
DBI_USER |
Имя пользователя по умолчанию для Perl DBI. |
DBI_TRACE |
Опции трассировки для Perl DBI. |
HOME |
Путь по умолчанию для файла истории
mysql
$HOME/.mysql_history . |
LD_RUN_PATH |
Используется, чтобы определить местоположение libmysqlclient.so .
|
LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN |
Включить плагин mysql_clear_password , см.
раздел 7.5.1.4.
|
LIBMYSQL_PLUGIN_DIR |
Каталог, в котором можно искать плагины клиента. |
LIBMYSQL_PLUGINS |
Плагины клиента, чтобы предварительно загрузить. |
MYSQL_DEBUG |
Опции трассировки отладки. |
MYSQL_GROUP_SUFFIX |
Групповое значение суффикса опции (как определение
--defaults-group-suffix ). |
MYSQL_HISTFILE |
Путь к файлу истории mysql
. Если эта переменная установлена, ее значение
переопределяет значение по умолчанию для
$HOME/.mysql_history . |
MYSQL_HISTIGNORE |
Образцы, определяющие запросы, которые
mysql
не должен зарегистрировать в $HOME/.mysql_history или
syslog , если дана опция
--syslog .
|
MYSQL_HOME |
Путь к каталогу, в котором находится определенный для сервера
файл my.cnf . |
MYSQL_HOST |
Имя хоста по умолчанию для
mysql. |
MYSQL_PS1 | Командная строка, чтобы
использовать в mysql
. |
MYSQL_PWD | Пароль по умолчанию,
соединяясь с mysqld
. Использование этого опасно. См.
раздел 7.1.2.1. |
MYSQL_TCP_PORT |
Значение по умолчанию порта TCP/IP. |
MYSQL_TEST_LOGIN_FILE |
Название файла пути входа в систему .mylogin.cnf . |
MYSQL_TEST_TRACE_CRASH |
Разрушает ли испытательный плагин трассировки протокола клиентов. |
MYSQL_TEST_TRACE_DEBUG |
Производит ли испытательный плагин трассировки протокола вывод. |
MYSQL_UNIX_PORT | Имя файла сокета
Unix по умолчанию для соединений с localhost . |
PATH | Используется оболочкой, чтобы
найти программы MySQL. |
PKG_CONFIG_PATH |
Расположение файла mysqlclient.pc
pkg-config. |
TMPDIR |
Каталог, в котором создаются временные файлы. |
TZ | Это должно быть установлено в
Вашу зону местного времени. См.
раздел B.5.3.7. |
UMASK |
Режим создания пользовательского файла. |
UMASK_DIR |
Режим создания пользовательского каталога. |
USER |
Имя пользователя по умолчанию в Windows, соединяясь с
mysqld.
|
Для информации о файле истории
mysql см.
раздел 5.5.1.3.
MYSQL_TEST_LOGIN_FILE путь файла пути входа в систему (файл,
создаваемый
mysql_config_editor). Если не задано,
значение по умолчанию %APPDATA%\MySQL\.mylogin.cnf в
Windows и $HOME/.mylogin.cnf в не-Windows.
См. раздел 5.6.7.
Переменные MYSQL_TEST_TRACE_DEBUG и
MYSQL_TEST_TRACE_CRASH управляют испытательным плагином клиента
трассировки протокола, если MySQL собран с этим включенным плагином.
Для получения дополнительной информации см.
раздел 26.2.4.11.1.
Значение по умолчанию UMASK и
UMASK_DIR : соответственно 0640 и 0750 .
MySQL предполагает, что значение для
UMASK или UMASK_DIR восьмеричное, если это
начинается с 0. Например, установка UMASK=0600 равнозначна
UMASK=384 , так как восьмеричное 0600 это десятичное 384.
UMASK и UMASK_DIR , несмотря на их имена,
используются в качестве режимов, не масок:
Может быть необходимо установить PKG_CONFIG_PATH ,
если Вы используете pkg-config
для создания программ MySQL. См.
раздел 25.8.4.2.
|
|