Содержание
- my.cnf
- Редактирование
- Пример конфигурации
- Стандартные конфигурации
- My cnf mysql windows как создать
- Русские Блоги
- конфигурация mysql файл my.cnf
- Конфигурация MySQL файл my.cnf
- my.cnf
- Параметры my.cnf MySQL 5.5 (кодировки UTF8)
- My cnf mysql windows как создать
my.cnf
my.cnf — это файл конфигурации MySQL. Чтобы найти файл, используйте команду:
В Linux’e обычно он находится по такому пути:
Редактирование
Для редактирования необходимо открыть файл my.cnf в текстовом редакторе:
После внесения изменений в файл, необходимо делать перезапуск mysql:
Пример конфигурации
Это пример настроек Mysql для сервера с 1Гб оперативной памяти и двумя ядрами:
Если в вашем конфиге есть настройка thread_concurrency — уберите ее.
Стандартные конфигурации
Для удобства используйте одну из указанных конфигураций для вашего сервера:
Для 2Гб оперативной памяти
Для 4Гб оперативной памяти
Для 8Гб оперативной памяти
Для 16Гб оперативной памяти
Для 32Гб оперативной памяти
Для 64Гб оперативной памяти
Для 128Гб оперативной памяти
Этот текст был написан несколько лет назад. С тех пор упомянутые здесь инструменты и софт могли получить обновления. Пожалуйста, проверяйте их актуальность.
Что такое индексы в Mysql и как их использовать для оптимизации запросов
Как исправить ошибку доступа к базе 1045 Access denied for user
Примеры ad-hoc запросов и технологии для их исполнения
Основные понятия о шардинге и репликации
Настройка Master-Master репликации на MySQL за 6 шагов
Как создать и использовать составной индекс в Mysql
Анализ медленных запросов (профилирование) в MySQL с помощью Percona Toolkit
Check-unused-keys для определения неиспользуемых индексов в базе данных
Синтаксис и оптимизация Mysql LIMIT
Запрос для определения версии Mysql: SELECT version()
Типы и способы применения репликации на примере MySQL
Правильная настройка Mysql под нагрузки и не только. Обновлено.
Настройка Master-Slave репликации на MySQL за 6 простых шагов
3 примера установки индексов в JOIN запросах
Быстрый подсчет уникальных значений за разные периоды времени
И как правильно работать с длительными соединениями в MySQL
Анализ медленных запросов с помощью EXPLAIN
Просмотр профиля запросов в Mysql
Правила выбора типов данных для максимальной производительности в Mysql
Описание, рекомендации и значение параметра query_cache_size
Что значит и как это починить
Использование партиций для ускорения сложных удалений
Включение и использование логов ошибок, запросов и медленных запросов, бинарного лога для проверки работы MySQL
Источник
My cnf mysql windows как создать
Программа mysqld понимает параметры командной строки:
MySQL может, начиная с версии 3.22, читать заданные по умолчанию параметры запуска для клиентов и сервера из файлов опций.
MySQL читает заданные по умолчанию параметры из следующих файлов (в Unix):
/.my.cnf Специфические для пользователей опции
MySQL читает заданные по умолчанию параметры из следующих файлов (только в ОС Windows):
Имя файла | Зачем он нужен |
windows-system-directorymy.ini | Глобальные опции |
C:my.cnf | Глобальные опции |
C:mysqldatamy.cnf | Опции для сервера |
MySQL пробует читать файлы опции в порядке, перечисленном выше. Если есть несколько файлов настроек, используется опция, определенная в том файле, который читается позже. Параметры, определенные в командной строке имеют приоритет над параметрами, определенными в любом файле опций. Некоторые параметры могут быть определены, используя системные переменные. Параметры, определенные в командной строке или в файлах опций имеют приоритет над значением соответствующей системной переменной.
Файл опций может содержать строки следующих форм:
Группа client позволяет Вам определять параметры, которые обращаются ко всей клиентуре MySQL (но не к mysqld ). Это самая подходящая группа, чтобы определить в ней пароль, который Вы используете, чтобы соединиться с сервером. Но удостоверьтесь, что файл опций читаем и перезаписываем только Вами.
Имеется типичный глобальный файл опций:
Имеется типичный файл опций пользователя:
Вся клиентура MySQL, которая поддерживает файлы опций, использует и следующие параметры:
—no-defaults | Не читать любые файлы опций. |
—print-defaults | Печатать имя программы и все параметры, которые ей передаются. |
—defaults-file=full-path-to-default-file | Использовать только данный файл конфигурации. |
—defaults-extra-file=full-path-to-default-file | Читать этот файл конфигурации после глобального файла опций, но перед чтением файла настроек пользователя. |
Вышеупомянутый вывод содержит все параметры для групп ‘client’ и ‘mysql’.
Один способ получить новый сервер: запустить его с другим сокетом и портом следующим образом:
Если Вы должны делать это более постоянно, Вы должны создать файл опций для каждого сервера. Подробности в разделе «4.1.2 Файлы опций my.cnf». В Вашем скрипте запуска, который будет выполнен при начальной загрузке (mysql.server?), Вы должны определить для обоих серверов:
По крайней мере следующие параметры должны быть различны на серверах:
port=# socket=path pid-file=path
Следующие параметры должны быть различны, если они используются:
log=path log-bin=path log-update=path log-isam=path bdb-logdir=path
Если Вы хотите получить большую эффективность, Вы можете также определять:
Имеются обстоятельства, когда Вы могли бы хотеть выполнять много серверов на одной и той же машине. Например, Вы могли бы проверять новый выпуск MySQL при оставлении Вашей существующей безмятежной установки в рабочем состоянии.
Если Вы хотите выполнять много серверов, самый простой путь состоит в том, чтобы компилировать их с различными портами TCP/IP и файлами сокетов так, что они оба не слушают тот же самый порт TCP/IP или файл сокета.
Предположим, что существующий сервер конфигурирован для заданного по умолчанию номера порта и файла сокета. Теперь конфигурируйте новый сервер командой выбора конфигурации configure :
Вы можете проверять сокет, используемый любым в настоящее время выполняющимся сервером MySQL, командой:
Обратите внимание, что, если Вы определяете localhost как имя хоста по умолчанию, mysqladmin будет использовать Unix-сокеты вместо протокола TCP/IP.
Если Вы имеете сервер MySQL, работающий на уже занятом порте, Вы получите список из наиболее важных переменных настройки в MySQL, включая имя сокета.
Вы не должны перекомпилировать сервер MySQL только, чтобы запустить его с другого порта и сокета. Вы можете изменять порт и сокет, который нужно использовать, определяя их во время выполнения как параметры для safe_mysqld :
ПРЕДУПРЕЖДЕНИЕ: Обычно Вы никогда не должны иметь двух серверов, которые модифицируют данные в той же самой базе данных! Если Ваша ОС не поддерживает полноценную блокировку системы, это легко может привести к ОЧЕНЬ неприятным неожиданностям!
Когда Вы хотите соединиться с сервером MySQL, который работает с другим портом, чем порт, который компилируется в Вашего клиента, Вы можете использовать один из следующих методов:
Источник
Русские Блоги
конфигурация mysql файл my.cnf
Конфигурация MySQL файл my.cnf
На официальном сайте сказано: начиная с 5.7.18 файл my-default.cnf не будет предоставляться в двоичном пакете. ссылка:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
После тестирования в версии 5.7.18 при использовании tar.gz для установки, т. Е. Сжатый пакет распаковывается и устанавливается, файл my.cnf больше не нужен и может нормально работать.
Файл my.cnf предназначен для настройки следующих параметров при запуске MySQL в командной строке с файлом cnf, тогда нет необходимости добавлять такие параметры в команду при запуске загрузки.
Этот файл my.cnf может быть настраиваемым расположением, или вы можете использовать следующее расположение по умолчанию, пока он находится в расположении по умолчанию, MySQL автоматически распознает его (устанавливается через источник deb или APT, исходное расположение находится в списке ниже):
/.my.cnf Пользовательские параметры
/.mylogin.cnf Параметры пути входа для конкретного пользователя (только на стороне клиента)
Приведенное выше подробное описание может относиться к официальному объяснению:https://dev.mysql.com/doc/refman/5.7/en/option-files.html
Короче говоря, независимо от того, используете ли вы установку исходного кода APT, установку пакета deb или установку пакета двоичного (сжатый пакет tar.gz), вы можете настроить конфигурацию запуска MySQL и настройку с помощью файла my.cnf.
Начиная с версии 5.7.18, двоичный пакет больше не содержит образец файла my-default.cnf, поэтому я извлек образец из версии 5.7.17, но обнаружил, что в нем не слишком много конфигураций. Содержимое my-default.cnf выглядит следующим образом :
Фактически, эти элементы являются параметрами командной строки.На официальном сайте вы можете использовать эту страницу https://dev.mysql.com/doc/refman/5.7/en/option-files.html как вход для поиска элементов, которые необходимо настроить. Необходимо настроить.
Ниже приведен пример из my.cnf, предоставленного http://www.fx114.net/qa-220-164752.aspx:
Совет: не рекомендуется копировать все вышеперечисленные файлы. Лучше копировать отдельно, когда вам нужна какая-то часть, потому что требования каждого сервера разные.
Источник
my.cnf
Начиная с версии 3.22 MySQL может считывать принятые по умолчанию параметры запуска для сервера и клиентов из файлов параметров. В Unix считывание принятых по умолчанию параметров MySQL производится из следующих файлов:
/.my.cnf Параметры для пользователя
DATADIR является каталогом данных MySQL (обычно ‘/usr/local/mysql/data’ для бинарной установки или ‘/usr/local/var’ для установки из исходных текстов). Обратите внимание, что это тот каталог, который был задан во время настройки, а не указанный при помощи –datadir при запуске mysqld! (–datadir не оказывает влияния на просмотр файлов параметров сервером, так как их просмотр происходит до обработки аргументов командной строки).
MySQL пытается прочитать файлы параметров в указанном выше порядке. Если существует несколько таких файлов, то параметр, указанный в файле, идущем позже, имеет преимущество над таким же параметром, указанным в файле, расположенном ранее. Параметры, указанные в командной строке, обладают более высоким приоритетом по отношению к параметрам, указанным в любом из файлов параметров. Некоторые параметры можно задавать при помощи переменных окружения. Параметры, указанные в командной строке или в файлах параметров, обладают преимуществом по отношению к переменным окружения.
Приводим список программ, поддерживающих файлы параметров: mysql, mysqladmin, mysqld, mysqld_safe, mysql.server, mysqldump, mysqlimport, mysqlshow, mysqlcheck, myisamchk и myisampack.
Любой параметр, который может быть задан в командной строке при запуске программы MySQL, может быть также задан в файле параметров (без предваряющего двойного слэша). Чтобы получить список доступных параметров, следует запустить программу с параметром –help.
Параметры my.cnf MySQL 5.5 (кодировки UTF8)
Источник
My cnf mysql windows как создать
Эта глава описывает, как получить и установить MySQL:
Если Вы имеете проблемы с файлом RPM, например, если Вы получаете ошибку « Sorry, the host ‘xxxx’ could not be looked up », почитайте раздел «2.6.1.1 Замечания по Linux для двоичного дистрибутива».
RPM-файлы, которые Вам понадобятся:
Чтобы увидеть все файлы в пакете RPM, выполните:
Чтобы выполнить стандартную минимальную установку, выполните:
Чтобы установить только клиентский пакет, выполните:
После установки из файлов RPM mysqld daemon должен работать, и Вы должны теперь иметь возможность начать использовать MySQL. Подробности в разделе «2.4 Послеустановочная настройка и тестирование».
Если что-то пошло не так, Вы можете найти подробную информацию в разделе «2.7 Установка MySQL из двоичного дистрибутива».
Следующие команды применимы к заранее откомпилированным двоичным дистрибутивам. Если Вы загружаете исходники, Вы будете должны компилировать и устанавливать их лично.
Если Вы не имеете копию дистрибутива MySQL, Вы должны сначала скачать ее с http://www.mysql.com/downloads/mysql-3.23.html.
Имеется список различных серверов MySQL, которые Вы можете использовать:
Все приведенные выше бинарные файлы оптимизированы для процессора Pentium Pro, но должны работать на любом процессоре Intel >= i386.
Проверьте домашнюю страницу MySQL http://www.mysql.com для поиска информации относительно текущей версии и того, где ее искать.
Наше основное зеркало загрузки размещено на:
Если Вы имеете проблемы при загрузке с нашего основного сайта, попробуйте использовать одно из зеркал, перечисленных в списке ниже.
Пожалуйста, сообщите о плохих или устаревших зеркалах на webmaster@mysql.com.
Авторы используют GNU Autoconf, так что возможно портирование MySQL на все современные системы с поддержкой потоков Posix и языка C++. C++ нужен только, чтобы откомпилировать код клиента, но не потоков. Все программное обеспечение разрабатывается прежде всего на Sun Solaris (Versions 2.5-2.7) и на SuSE Linux Version 7.x.
Обратите внимание, что для многих операционных систем, местная поддержка потоков работает только в последних версиях. MySQL компилировался успешно на следующих комбинациях пакетов потоков/операционных систем:
Основываясь на вышеупомянутых критериях, можно сказать, что самые лучшие платформы для MySQL на сегодняшний день: на x86 SuSE Linux 7.1, с ядром 2.4 и ReiserFS (или любой подобный дистрибутив Linux), а на Sparc Solaris 2.7 или 2.8. FreeBSD занимает третье место, но в ней идет реконструкция библиотеки потоков, глядишь, и выплывет наверх.
Пожалуйста, обратите внимание, что сравнение выше не говорит, что одни OS вообще лучше или хуже, чем другие. Мы говорим относительно выбора OS для специализированной цели, а именно, для работы с MySQL, и сравниваем платформы только в этом отношении.
Первое решение состоит в том, хотите ли Вы использовать последний выпуск для разработки или последний устойчивый выпуск:
Второе решение состоит в том, хотите ли Вы использовать исходники или двоичный дистрибутив. В большинстве случаев Вы должны использовать двоичный дистрибутив, если таковой существует для Вашей платформы, поскольку это в общем-то будет проще, чем установить все из исходников.
В следующих случаях лучше использовать именно исходники:
Все версии MySQL проходят стандартные и эталонные тесты, чтобы гарантировать, что они относительно безопасны.
Обратите внимание, что все выпуски были проверены по крайней мере с: Внутренний набор теста Это часть промышленной системы заказчика. Имеет много таблиц с сотнями мегабайт данных. Эталонный набор MySQL Это выполняет диапазон общих запросов. Представляет собой тест, чтобы видеть, сделал ли последний пакет оптимизации код фактически быстрее. Тест crash-me Этот тест пробует определять то, какие свойства база данных поддерживает, и каковы ее возможности и ограничения.
Этот раздел описывает заданное по умолчанию размещение каталогов, созданных при установке.
Двоичный дистрибутив установлен, распаковываясь в расположение установки, которое Вы выбираете (обычно /usr/local/mysql ), и создает следующие каталоги в этом расположении:
Каталог | Содержимое |
bin | Клиентские программы и сервер mysqld |
data | Файлы протоколов и баз данных |
include | Заголовочные (header) файлы |
lib | Библиотеки |
scripts | mysql_install_db |
share/mysql | Файлы сообщений об ошибках |
sql-bench | Бенчмарки (эталонные тесты) |
Дистрибутив из исходных кодов будет установлен после того, как Вы его сконфигурируете и откомпилируете. По умолчанию, шаг установки копирует файлы в следующие подкаталоги в /usr/local :
Каталог | Содержимое |
bin | Клиентские программы и скрипты |
include/mysql | Заголовочные (header) файлы |
info | Документация в формате Info |
lib/mysql | Библиотеки |
libexec | Сервер mysqld |
share/mysql | Файлы сообщений об ошибках |
sql-bench | Бенчмарки (эталонные тесты)+тест crash-me |
var | Файлы протоколов и баз данных |
Внутри каталога установок, размещение установки из исходного кода отличается от таковой из двоичного дистрибутива так:
MySQL развивается быстро. MySQL AB использует следующую стратегию при модифицировании MySQL:
Текущий устойчивый выпуск: Version 3.23. Авторы пакета уже переместили активную разработку в Version 4.0. Ошибки все еще будут отлавливаться и исправляться в устойчивой версии по мере их обнаружения.
В MySQL AB обеспечивают набор двоичных дистрибутивов, которые компилируются непосредственно авторами пакета, или в местах, где заказчики доброжелательно дали доступ к их машинам.
Эти дистрибутивы сгенерированы scripts/make_binary_distribution и сконфигурированы со следующими трансляторами и параметрами:
Любой, кто имеет более оптимальные параметры для любой из конфигураций, перечисленных выше, может всегда отправлять по почте их в лист рассылки разработчиков по адресу internals@lists.mysql.com.
RPM-дистрибутивы до MySQL Version 3.22 создавались пользователями. Начиная с версии Version 3.22, RPM-пакеты генерируются в MySQL AB.
Как только Вы установили MySQL (неважно, из какого типа дистрибутива) Вы должны инициализировать таблицы предоставления привилегий, запустить сервер и удостовериться, что он работает нормально. Вы можете также принять меры, чтобы сервер был запущен и остановлен автоматически при запуске или парковке ОС Вашего компьютера.
Обычно Вы устанавливаете таблицы предоставления привилегий и запускаете сервер для установки из исходников примерно так:
Для двоичного дистрибутива (не RPM или pkg-пакетов!), скомандуйте:
Тестирование наиболее легко выполняется из верхнего каталога дистрибутива MySQL. Для двоичного дистрибутива это Ваш каталог установки (обычно что-то вроде /usr/local/mysql ). Для исходников это основной каталог Вашего дерева исходного кода MySQL.
Тестирование подробно описано ниже:
Цель скрипта mysql_install_db состоит в том, чтобы сгенерировать новые таблицы предоставления привилегий MySQL. Это не будет воздействовать на любые другие данные! Скрипт также не будет делать что-либо, если Вы уже имеете установленные таблицы предоставления привилегий MySQL!
Этот раздел перечисляет проблемы, с которыми Вы можете столкнуться, когда выполняете mysql_install_db :
Если Вы собираетесь использовать таблицы, которые поддерживают транзакции (BDB, InnoDB), Вы должны сначала создать файл my.cnf и установить параметры запуска для тех типов таблиц, которые Вы планируете использовать. Подробности в разделе «7 Типы таблиц MySQL».
Вообще, Вы запускаете сервер mysqld одним из трех путей:
Когда mysqld запускается, он переходит в каталог данных, где ожидает найти базы данных. Именно там будут записываться файлы протокола и pid (process ID).
Если в файле протокола будет найдено нечто вроде:
Если Вы получаете следующую ошибку, это означает, что некоторая другая программа (или другой сервер mysqld ) уже использует TCP/IP порт или сокет, который пробует использовать mysqld :
Если mysqld в настоящее время работает, Вы можете выяснить, какие параметры настройки он использует, выполняя эту команду:
Эта проблема происходит только на системах, которые не имеют рабочую библиотеку потоков, и для которых MySQL должен быть сконфигурирован так, чтобы использовать MIT-pthreads.
Если Вы используете InnoDB-таблицы, обратитесь к специфическим параметрам запуска. Подробности в разделе «7.6.2 Параметры запуска InnoDB».
Если Вы используете таблицы BDB (Berkeley DB), Вы должны ознакомиться с различными специфическими параметрами запуска BDB. Подробности в разделе «7.5.3 Параметры запуска BDB».
Скрипты mysql.server и safe_mysqld могут использоваться, чтобы запустить сервер автоматически при запуске системы. Скрипт mysql.server может также использоваться для того, чтобы остановить сервер при парковке системы.
Скрипт mysql.server может использоваться, чтобы запустить или остановить сервер, вызывая его с параметрами start или stop :
mysql.server может быть найден в каталоге share/mysql установочного каталога MySQL или в каталоге support-files дерева исходников MySQL.
Следующая таблица показывает, какие группы опций читает из файлов настройки конкретный скрипт:
Когда Вы делаете обновление, Вы, конечно, должны также зарезервировать Ваши старые базы данных.
Старые клиенты могут работать с новым сервером версии 4.0 без проблем.
Клиенты версий 3.22 и 3.21 могут работать с новым сервером версии 3.23 без каких-либо проблем.
Следующий список сообщает, что Вы должны не упустить при обновлении до Version 3.23:
Если Вы управляете версией старше, чем Version 3.20.28, и хотите перейти на Version 3.21, Вы должны сделать следующее:
Новый код клиентов работает с сервером mysqld 3.20.x, так что, если Вы испытываете проблемы с 3.21.x, Вы можете использовать старый сервер 3.20.x без того, чтобы перекомпилировать клиентуру еще раз.
Следующие изменения могут воздействовать на запросы в старых программах:
Самый простой (хотя не самый быстрый) способ перемещать базу данных между двумя машинами состоит в том, чтобы выполнить следующие команды на машине, на которой база данных размещена сейчас:
Если Вы хотите копировать базу данных с удаленной машины через медленную сеть, Вы можете использовать:
Вы можете также сохранять результат в файле, затем передавать файл целевой машине и загружать файл в базу данных там. Например, Вы можете сбросить в дамп базу данных на исходной машине подобно этому:
Файл, созданный в этом примере сжат. Затем передайте это файл целевой машине и выполните эти команды там:
Сначала создайте каталог для выходных файлов и дампа база данных:
Затем передайте файлы в каталоге DUMPDIR соответствующему каталогу на целевой машине и загрузите файлы в MySQL там:
Источник
Начиная с версии MySQL 3.23.38, дистрибутив для Windows включает в себя как обычный бинарный код, так и бинарный код сервера MySQL-Max
. Ниже приводится список различных серверов MySQL, которые можно использовать:
Бинарный код | Описание |
mysqld |
Скомпилирован с полным набором возможностей отладки и автоматической проверки выделения памяти, символических ссылок, таблиц InnoDB и BDB. |
mysqld-opt |
Оптимизированный бинарный код без поддержки транзакционных таблиц. |
mysqld-nt |
Оптимизированный бинарный код для NT/2000/XP с поддержкой именованных каналов. Можно запустить эту версию на Windows 9x/Me, но в этом случае не создаются именованные каналы и необходимо иметь установленный протокол TCP/IP. |
mysqld-max |
Оптимизированный бинарный код с поддержкой символических ссылок и таблиц InnoDB и BDB. |
mysqld-max-nt |
Подобен mysqld-max , но скомпилирован с поддержкой именованных каналов. |
Начиная с версии 3.23.50, именованные каналы доступны только при запуске mysqld с --enable-named-pipe
.
Все бинарные коды оптимизированы под процессор Pentium Pro, но должны работать на любом процессоре Intel >= i386.
При следующих обстоятельствах для того чтобы задать вашу конфигурацию MySQL будет необходимо использовать файл опций:
-
Если каталоги установки или данных отличаются от заданных по умолчанию местоположений (
c:mysql
иc:mysqldata
). -
Если вы хотите использовать один из следующих серверов:
-
mysqld.exe
-
mysqld-max.exe
-
mysqld-max-nt.exe
-
-
Если вам требуется выполнить настройку установочных параметров сервера.
Обычно для редактирования файла опций my.ini
можно использовать инструмент WinMySQLAdmin
. В этом случае остальную часть данного раздела вы можете пропустить.
Существует два файла опций с одинаковыми функциями: my.cnf
и my.ini
. Однако во избежание недоразумений лучше всего использовать только один из них. Оба файла представляют собой простой текст. Если вы собираетесь использовать файл my.cnf
, то его следует создать в корневом каталоге диска C, если my.ini
— то в системном каталоге Windows (это обычно что-либо вроде C:WINDOWS
или C:WINNT
; его точное местоположение можно определить по значению переменной окружения windir
). MySQL сначала ищет файл my.ini
, а затем my.cnf
.
Если на вашем компьютере используется начальный загрузчик, в котором диск C не является загрузочным диском, то следует работать только с файлом my.ini
. Инструментальная программа WinMySQLAdmin
, если она у вас применяется, также использует только файл my.ini
(файл помощи с инструкциями по использованию этого инструмента находится в каталоге mysqlbin
).
Используя notepad.exe
, создайте файл опций и отредактируйте раздел [mysqld]
, указав значения параметров basedir
и datadir
:
[mysqld] # set basedir to installation path, e.g., c:/mysql basedir=the_install_path # set datadir to location of data directory, # e.g., c:/mysql/data or d:/mydata/data datadir=the_data_path
Следует учитывать, что в Windows имена путей должны указываться в файле опций с использованием предпочтительно прямых слешей, а не обратных. Если вы применяете обратные слеши, то их необходимо дублировать.
Чтобы использовать каталог данных, отличный от заданного по умолчанию c:mysqldata
, необходимо скопировать все содержимое каталога c:mysqldata
в новое местоположение.
Если вы хотите работать с транзакционными таблицами InnoDB
, то необходимо вручную создать два новых каталога для хранения данных таблиц InnoDB
и журнальных файлов — т.е. c:ibdata
и c:iblogs
. Помимо этого потребуется добавить несколько дополнительных строк в файле опций. См. раздел Параметры запуска InnoDB.
Если же работу с таблицами InnoDB
вы не планируете, следует в файле опций добавьте опцию skip-innodb
.
Теперь вы готовы тестировать запуск сервера.
This is an old question, but I’m providing an answer that works for current versions of MySQL (based on 5.6.21 and later).
To make passwords work you can’t use any of the my.cnf
or my.ini
files, you must use the %APPDATA%MySQL.mylogin.cnf
. In addition, you cannot create a plain text file, you have to use the mysql_config_editor
tool to create the file.
For example, say you want to create an automated login for your backup script. First, open a command prompt as the user that will run the job:
runas /user:jobserviceaccount@mydomain cmd
That will open a window running as your job account’s user (and create a directory under C:Users for it).
Next, using the new command window, run the command that will create the .mylogin.cnf
file. For example:
"C:Program FilesMySQLMySQL Server 5.6binmysql_config_editor" set --user=root --password
In the above example, the tool will prompt you for the password. Type in the password you want, and the file will be created.
Now mysql and mysqldump will use the file you just created as the credentials whenever the account you set it up under is logged in (Task Scheduler can log in a user when it runs a job).
Системные переменные MySQL сервера, файл my.cnf
Сервер MySQL, поддерживает большое количество системных переменных с помощью которых можно сделать, так называемую, «тонкую настройку». Глобальные переменные инициализируются значениями по-умолчанию при старте MySQL сервера, или принимают значения, установленные в конфигурационном файле my.cnf ( my.ini для Windows ).
Получить полный список системных переменных в консольном клиенте mysql, можно с помощью команды
mysql> SHOW VARIABLESg
Часть системных переменных, можно переопределить динамически, то-есть во время работы MySQL сервера, с помощью команды SET.
- MySQL сервер поддерживает два типа переменных, глобальные и сеансовые.
- Глобальные переменные — инициализируются при старте MySQL сервера, получая значения по умолчанию.
- Сеансовые переменные — создаются для каждого соединения клиента с сервером и получают значения, установленные для глобальных переменных.
Для установки нового значения глобальной переменной, используется такая форма команды SET:
mysql> SET GLOBAL read_buffer_size=16384g Query OK, 0 rows affected (0.00 sec)
либо можно использовать альтернативную форму команды SET:
mysql> SET @@global.read_buffer_size=16384g Query OK, 0 rows affected (0.01 sec)
Посмотреть значение переменной можно несколькими способами
mysql> SHOW GLOBAL VARIABLES LIKE 'read_buffer_size'g +------------------+-------+ | Variable_name | Value | +------------------+-------+ | read_buffer_size | 16384 | +------------------+-------+ 1 row in set (0.00 sec)
или
mysql> SELECT @@global.read_buffer_sizeg +---------------------------+ | @@global.read_buffer_size | +---------------------------+ | 16384 | +---------------------------+ 1 row in set (0.00 sec)
Для установки сеансовых переменных, используется:
mysql> SET SESSION read_buffer_size=16384g Query OK, 0 rows affected (0.00 sec)
или одна из альтернатив:
mysql> SET @@session.read_buffer_size=16384g mysql> SET LOCAL read_buffer_size=16384g mysql> SET read_buffer_size=8192g
Обратите внимание, если не указано ни одно из ключевых слов, GLOBAL, LOCAL или SESSION, переменная считается сессионной.
Посмотреть значения сессионных переменных, можно так-же несколькими способами с использованием ключевых слов, упомянутых выше.
Системные переменные MySQL сервера
- auto_increment_increment
- auto_increment_offset
- back_log
- basedir
- bdb_cache_size
- bdb_cache_parts
- bdb_home
- bdb_log_buffer_size
- bdb_logdir
- bdb_max_lock
- bdb_region_size
- bdb_shared_data
- bdb_tmpdir
- binlog_cache_size
- binlog_format
- bulk insert buffer size
- character_sets
- character_set_client
- character_set_connection
- character_set_database
- character_set_filsystem
- character_set_results
- character_set_server
- character_set_system
- character_sets_dir
- collation_connection
- collation_database
- collation_server
- completion_type
- concurent_insert
- connect_timeout
- datadir
- default_week_format
- delay_key_write
- delayed_insert_limit
- delayed_insert_timeout
- delayed_queue_size
- div_precision_increment
- event_scheduler
- expire_logs_days
- flush
- flush_time
- ft_boolean_syntax
- ft_max_word_len
- ft_min_word_len
- ft_query_expansion_limit
- ft_stopword_file
- general_log
- general_log_file
- group_concat_max_len
- have_archive
- have_bdb
- have_blackhole_engine
- have_compress
- have_crypt
- have_cvs
- have_dynamic_loading
- рhave_example
- have_federated_engine
- have_geometry
- have_innodb
- have_ndbcluster
- have_partitionung
- have_openssl
- have_query_cache
- have_row_based_replication
- have_rtree_keys
- have_symlink
- init_connect
- init_file
- init_slave
- interactive_timeout
- join_buffer_size
- key_buffer_size
- key_cache_age_threshold
- key_cache_block_size
- key_cache_division_limit
- language
- large_file_support
- large_pages
- lc_time_names
- licanse
- local_infile
- locked_in_memory
- log
- log_bin
- log_bin_trust_function_creators
- log_error
- log_output
- log_queries_not_using_indexes
- log_slave_updates
- log_slow_queries
- log_warnings
- long_query_time
- low_priority_updates
- lower_case_file_systems
- lower_case_table_names
- max_allowed_packet
- max_binlog_cache_size
- max_binlog_size
- max_connect_errors
- max_connections
- max_delayed_threads
- max_error_count
- max_heap_table_size
- max_insert_delayed_threads
- max_join_size
- max_length_for_sort_data
- max_prepared_stmt_count
- max_relay_log_size
- max_seeks_for_key
- max_sort_length
- max_tmp_tables
- max_user_connections
- max_write_lock_count
- myisam_data_pointer_size
- myisam_max_sort_file_size
- myisam_recover_options
- myisam_sort_buffer_size
- myisam_stats_method
- myisam_use_mmap
- named_pipe
- net_buffer_length
- net_read_timeout
- net_retry_count
- net_write_timeout
- new
- old_passwords
- open_files_limit
- optimizer_prune_level
- optimizer_search_depth
- pid_file
- plugin_dir
- port
- preload_buffer_size
- prepared_stmt_count
- protocol_version
- query_alloc_block_size
- query_cache_limit
- query_cache_min_res_unit
- query_cache_size
- query_cache_type
- query_cache_wlock_invalidate
- query_prealloc_size
- range_alloc_block_size
- read_buffer_size
- read_only
- relay_log_purge
- read_rnd_buffer_size
- rpl_recovery_rank
- secure_auth
- server_id
- shared_memory
- shared_memory_base_name
- skip_external_locking
- skip_networking
- skip_show_database
- slave_compressed_protocol
- slave_load_tmpdir
- slave_net_timeout
- slave_skip_errors
- slow_launch_time
- slow_query_log
- slow_query_log_file
- socket
- sort_buffer_size
- sql_mode
- sql_slave_skip_counter
- ssl_ca
- ssl_capath
- ssl_cert
- ssl_cipher
- ssl_key
- storage_engine
- sync_binlog
- sync_frm
- system_time_zone
- table_cache
- table_definition_cache
- table_lock_wait_timeout
- table_open_cache
- table_type
- thread_cache_size
- thread_concurrency
- thread_stack
- time_format
- time_zone
- tmp_table_size
- tmpdir
- transaction_alloc_block_size
- transaction_prealloc_size
- tx_isolation
- updatable_views_with_limit
- version
- version_bdb
- version_comment
- version_compile_machine
- version_compile_os
- wait_timeout
- auto_increment_increment
- Устанавливает приращение для механизма AUTO_INCREMENT. Возможные значения: 1 — 65 535. Значение по умолчанию: 1. При установке значения 0, получает значение 1, при попытке присвоить значение меньше нуля или больше 65 535, принимает значение 65 535. Если например, присвоить данной переменной значение 10, то значения счетчика автоинкремента, будет увеличиваться не на 1, а на 10.
Введена с версии 5.0.2.
Динамическая - auto_increment_offset
- Устанавливает начальное значение счетчика для механизма AUTO_INCREMENT. Возможные значения: 1 — 65 535. Значение по умолчанию: 1. При установке значения 0, получает значение 1, при попытке присвоить значение меньше нуля или больше 65 535, принимает значение 65 535. Если присвоить этой переменной значение 7, счетчик автоинкремента, начнет увеличиваться не с 1, а с 7.
Введена с версии 5.0.2.
Динамическая - back_log
- Размер очереди запросов на подключение клиентов. При получении входящего запроса на соединение, основной поток MySQL сервера, после проверки запроса, запускает новый поток. Если запросов на соединение пришло слишком много за короткий промежуток времени, на их обслуживание потребуется некоторое время. Данная переменная устанавливает количество запросов, которые могут быть помещены в стек, на время, пока не освободится основной поток для их обслуживания. Все соединения выше данного значения — отбрасываются, клиенту выдается соответствующее сообщение. По сути, данная переменная устанавливает длину очереди, входящих TCP соединений, и не может превышать значение, установленной операционной системой.
Статическая - basedir
- Содержит путь к базовому каталогу установки. Может быть установлена с помощью параметра командной строки: —basedir
Статическая - bdb_cache_size
- Задает размер буфера для индексов кэширования и строк таблиц BDB. Если данный тип таблиц, использовать не планируется, можно установить значение 0 или использовать параметр командной строки —skip-bdb
Статическая - bdb_cache_parts
- Количество разделов в BDB-кэше.
Появилась с версии NySQL 5.1.2. - bdb_home
- Устанавливает путь к каталогу таблиц BDB. По умолчанию, имеет значение переменной datadir, определяющей путь к каталогу данных.
Статическая - bdb_log_buffer_size
- Задает размер буфера для индексов кэширования и строк таблиц BDB. Если данный тип таблиц, использовать не планируется, можно установить значение 0 или использовать параметр командной строки —skip-bdb
Статическая - bdb_logdir
- Задает путь к каталогу, содержащему журнальные файлы BDB-таблиц. Так-же можно установить с помощью параметра —bdb-logdir
Статическая - bdb_max_lock
- Задает количество активных блокировок в BDB-таблице. Значение этой переменной нужно увеличивать в случае возникновения ошибок при длинных транзакциях или если серверу MySQL приходится проверять большое количество строк в таблице.
Статическая - bdb_region_size
- Объем памяти BDB-окружения, определяющий размер пула, используемого для хранения имен файлов при транзакциях.
Появилась в версии 5.1.2 - bdb_shared_data
- Переменная принимает значение ON, при запуске MySQL сервера с параметром —bdb-shared-data для обработки BDB таблиц в многопроцессорном режиме.
Статическая - bdb_tmpdir
- Путь к папке временных файлов BDB. Может быть установлена при запуске MySQL сервера, параметром —bdb-tmpdir.
- binlog_cache_size
- Размер кэша, используемого для хранения SQL-операторов бинарного журнала регистраций во время транзакций. Данный кэш выделяется для каждого клиента, если сервер использует любую из транзакционных таблиц ( BDB, InnoBD ) и на сервере включена поддержка бинарного журнала регистраций ( параметр запуска —log-bin ). При частом использовании объемных транзакций со множеством операторов, значение данной переменной рекомендуется увеличить.
- binlog_format
- Данная переменная определяет тип репликации и имеет три возможных параметра:
- STATEMENT — репликация, основанная на анализе выполняемых запросов
- ROW — репликация, основанная на изменении записей таблиц. ( начиная с версии 5.1.5 )
- MIXED — смешанный тип, по умолчанию используется STATEMENT-репликация с переключениями в ROW-режим. ( начиная с версии 5.1.8 )
Значение можно установить при запуске сервера, параметром —binlog-format.
- bulk insert buffer size
- Таблицы MyISAM, используют древовидный кэш, для ускорения групповых операций вставки данных, для многострочного оператора INSERT, операторов INSERT …….. SELECT и LOAD DATA INFILE. Данная переменная ограничивает размер кэша на поток. При установке в 0, данная оптимизация будет отключена. Значение по-умолчанию, 8 мегабайт.
- character_sets
- Задает поддерживаемые кодировки.
Удалена, начиная с версии 4.1.1, вместо нее введены различные переменные character_set_xxx - character_set_client
- Переменная задает кодировку для операторов, приходящих от клиента.
Введена начиная с MySQL 4.1.1. - character_set_connection
- Задает кодировку для соединения клиента с сервером MySQL. В кодировку, заданную этой переменной перекодируются полученные от клиента операторы.
Введена начиная с MySQL 4.1.1. - character_set_database
- Задает кодировку, используемую базой данных по-умолчанию. Данная переменная устанавливается при каждом изменении текущей базы данных. Если ни одна база данных не выбрана, переменная имеет значение, которое получает база данных, если при ее создании, кодировка не указана явно.
Введена начиная с MySQL 4.1.1. - character_set_filsystem
- Задает кодировку, использующуюся для имен файлов в файловой системе.
Введена начиная с MySQL 5.1.6. - character_set_results
- Кодировка использующаяся для возвращаемых клиенту, результатов.
Введена начиная с MySQL 4.1.1. - character_set_server
- Кодировка MySQL сервера по-умолчанию.
Введена начиная с MySQL 4.1.1. - character_set_system
- Кодировка, используемая сервером для хранения идентификаторов. Всегда имеет значение UTF8.
Введена начиная с MySQL 4.1.1. - character_sets_dir
- Задает путь к каталогу с кодировками.
Введена начиная с MySQL 4.1.2. - collation_connection
- Каждая кодировка может применяться для представления нескольких языков, но для каждого языка должен использоваться уникальный порядок сортировки. Данная переменная задает сортировку для кодировки, установленной в переменной character_set_connection.
Введена начиная с MySQL 4.1.1. - collation_database
- Сортировка для кодировки, установленной переменной character_set_database.
Введена начиная с MySQL 4.1.1. - collation_server
- Сортировка для кодировки, установленной переменной character_set_server.
Введена начиная с MySQL 4.1.1. - completion_type
- Переменная определяет режим завершения транзакции.
- 0 — операторы COMMIT и ROLLBACK не подвергаются изменению.
- 1 — вышеупомянутые операторы эквивалентны COMMIT AND CHAIN и ROLLBACK AND CHAIN.
- 2 — вышеупомянутые операторы эквивалентны COMMIT RELEASE и ROLLBACK RELEASE.
Введена начиная с MySQL 5.0.3.
- concurent_insert
- Одновременное использование операторов INSERT и SELECT, для таблиц, не содержащих свободных блоков.
- 0 — отключено. Так-же можно использовать параметр —safe или —skip-new, при запуске MySQL сервера.
- 1 — включено.
- 2 — если таблицу одновременно использует второй поток, вставка новых записей будет производиться в конец таблицы, если с таблицей работает только один поток, записи будут добавлены в свободные блоки.
Значение 2 было добавлено в MySQL версии 5.0.6.
- connect_timeout
- Таймаут для подключения к серверу в секундах. По истечении данного интервала, будет выдано сообщение Bad handshake ( «рукопожатие» — в сетевой терминологии, способ согласования и установки соединения ).
- datadir
- Указывает на каталог данных. Может быть установлена при запуске MySQL сервера, параметром —datadir.
- default_week_format
- Режим по-умолчанию для функции WEEK().
- delay_key_write
- Данная переменная влияет на способ обработки ключевого слова DELAY_KEY_WRITE, оператора CREATE TABLES. Касается только таблиц MyISAM. Если при создании таблицы использовалось ключевое слово DELAY_KEY_WRITE, очистка буфера ключей производится не при каждом обновлении индекса, а только при закрытии таблицы, что позволяет увеличить скорость выполнения запросов.
- OFF — ключевое слово DELAY_KEY_WRITE игнорируется
- ON — DELAY_KEY_WRITE не игнорируется, значение по-умолчанию
- ALL — все новые таблицы рассматриваются как созданные с использованием DELAY_KEY_WRITE.
- delayed_insert_limit
- После вставки, указанного в данной переменной, количества отложенных строк, обработчик INSERT DELAYED проверяет, нет-ли незавершенных операторов SELECT, если таковые имеются, MySQL сервер выполняет их, после чего продолжает вставку отложенных строк. Значение по-умолчанию 100.
- delayed_insert_timeout
- Данная переменная устанавливает время ожидания обработчика INSERT DELAYED, оператора INSERT, перед завершением своей работы.
- delayed_queue_size
- Длина очереди обработчика INSERT DELAYED. В случае переполнения очереди, клиенты, выполнившие запрос INSERT DELAYED, будут ожидать освобождения в очереди свободного места.
- div_precision_increment
- Задает количество знаков после запятой в результате деления. Значение может быть от 0 до 30. Появилась начиная с версии 5.0.6.
- event_scheduler
- Включение/отключение планировщика заданий. По-умолчанию отключен. Переменная добавлена, начиная с версии MySQL 5.1.6.
- expire_logs_days
- Переменная задает срок хранения, в днях, бинарных логов. Если установлено значение 0, бинарные логи не удаляются. Переменная введена с версии MySQL 4.1.0.
- flush
- Данная переменная принимает значение ON, если MySQL сервер был запущен с параметром —flush. Включение данной переменной указывает MySQL серверу, сбрасывать изменения на диск после каждого SQL-оператора. Уменьшает вероятность разрушения таблиц при сбое, обратная сторона медали — серьезное снижение производительности. Как правило используется при нестабильной работе MySQL сервера.
- flush_time
- Если значение не равно нулю, таблицы закрываются каждые flush_time секунд, что-бы синхронизировать данные на диск. Использовать данную переменную рекомендуется только на системах Windows 98/ME а так-же на системах с минимальным количеством системных ресурсов
- ft_boolean_syntax
- Переменная содержит список поддерживаемых операций при полнотекстовом поиске в логическом режиме (IN BOOLEAN MODE). Значение по-умолчанию, + -><()~*:»»&|. Для изменения значения, применяются следующие правила:
- функция операции определяется позицией в строке
- значения замены должны состоять из 14 символов
- каждый символ должен быть ASCII-символом, отличным от алфавитно-цифрового
- первый или второй символ — обязательно пробел
- дубликаты запрещены, кроме ковычек в 11 и 12 позициях. Данные символы не обязательно должны быть одинаковыми, но таковыми могут быть только они
- позиции 10, 13 и 14 ( по-умолчанию :,& и |), резервируются для будущих расширений.
- ft_max_word_len
- Максимальная длина слова для включения в индекс FULLTEXT. Значение по-умолчанию — 84. При изменении значения данной переменной все FULLTEXT индексы должны быть перекомпонованы.
- ft_min_word_len
- Минимальная длина слова для включения в индекс FULLTEXT. Значение по-умолчанию — 4. При изменении значения данной переменной все FULLTEXT индексы должны быть перекомпонованы.
- ft_query_expansion_limit
- Максимально значение точных совпадений при полнотекстовом поиске с использование WITH QUERY EXPANSION. Введена с версии MySQL 4.1.1.
- ft_stopword_file
- Содержит путь к файлу стоп-слов ( наречия, союзы, предлоги и т.д ) для полнотекстового поиска. Установка пустого значения для данной переменной, приведет к отключению фильтрации стоп-слов. После изменения значения данной переменной все FULLTEXT индексы должны быть перестроены.
- general_log
- Данная переменная отображает, включен или выключен лог запросов, зависит от того, был MySQL сервер запущен с параметром —log или без него. Появилась с версии 5.1.12.
- general_log_file
- Путь в лог-файлу запросов. Может быть изменена при запуске MySQL сервера, с помощью параметра —log. Введена с версии MySQL 5.1.12.
- group_concat_max_len
- Максимальный размер для функции GROUP_CONCT(). Введена с версии 4.1.0.
- have_archive
- Поддержка текущей версией MYSQL сервера, таблиц типа ARCHIVE:
- YES — поддерживает
- NO — не поддерживает
Введена с версии 4.1.3
- have_bdb
- Поддержка текущей версией MYSQL сервера, таблиц типа BDB:
- YES — поддерживает
- NO — не поддерживает
- DISABLED — если поддержка BDB отключена при старте MySQL сервера, параметром —skip-bdb
- have_blackhole_engine
- Поддержка текущей версией MYSQL сервера, таблиц типа BLACKHOLE:
- YES — поддерживает
- NO — не поддерживает
Введена с версии 4.1.11
- have_compress
- Значение данной переменной зависит от того, был-ли MySQL сервер скомпилирован с поддержкой библиотеки zlib.
- YES — с поддержкой
- NO — без поддержки
Во втором случае функции COMPRESS() и DECOMPRESS() будут не доступны. Появилась с версии MySQL 4.1.1.
- have_crypt
- Принимает значение в зависимости от того, поддерживает-ли операционка системный вызов crypt().
- YES — поддерживает
- NO — не поддерживает
Во втором случае, будут не доступны функции ENCRYPT().
- have_cvs
- Поддержка текущей версией MYSQL сервера, таблиц типа CVS:
- YES — поддерживает
- NO — не поддерживает
Появилась с версии MySQL 4.1.4.
- have_dynamic_loading
- Поддерживает-ли текущая версия MySQL сервера динамическую загрузку плагинов.
- YES — поддерживает
- NO — не поддерживает
Появилась с версии MySQL 5.1.10.
- рhave_example
- Поддержка текущей версией MYSQL сервера, таблиц типа EXAMPLE:
- YES — поддерживает
- NO — не поддерживает
Появилась с версии MySQL 4.1.4.
- have_federated_engine
- Поддержка текущей версией MYSQL сервера, таблиц типа FEDERATED:
- YES — поддерживает
- NO — не поддерживает
Появилась с версии MySQL 5.0.3.
- have_geometry
- Поддерживает-ли MySQL сервер пространственные расширения.
- YES — поддерживает
- NO — не поддерживает
Появилась с версии MySQL 4.1.3.
- have_innodb
- Поддержка текущей версией MYSQL сервера, таблиц типа InnoDB:
- YES — поддерживает
- NO — не поддерживает
- DISABLED — если поддержка таблиц InnoDB была отключена при старте MySQL сервера, параметром —skip-innodb.
- have_ndbcluster
- Поддержка текущей версией MYSQL сервера, таблиц типа NDB Cluster:
- YES — поддерживает
- NO — не поддерживает
- DISABLED — если поддержка NDB Cluster была отключена при старте MySQL сервера, параметром —skip-ndbcluster.
- have_partitionung
- Поддерживает-ли MySQL сервер сегментирование.
- YES — поддерживает
- NO — не поддерживает
Появилась с версии MySQL 5.1.6.
- have_openssl
- Поддержка MySQL сервером протокола SSL.
- YES — поддерживает
- NO — не поддерживает
- have_query_cache
- Поддерживается-ли кэш запросов.
- YES — поддерживает
- NO — не поддерживает
- have_row_based_replication
- Умеет-ли MySQL сервер выполнять репликацию с помощью построчного бинарного журнала.
- YES — умеет
- NO — не умеет
Введена с версии MySQL 5.1.5.
- have_rtree_keys
- Поддерживает-ли MySQL сервер RTREE-индексы
- YES — поддерживает
- NO — не поддерживает
Введена с версии MySQL 4.1.3.
- have_symlink
- Поддержка MySQL сервером символических ссылок.
- YES — поддерживает
- NO — не поддерживает
- init_connect
- Данная переменная задает один или несколько SQL-операторов, выполняющихся при подключении каждого клиента. Например так можно выставить кодировку по-умолчанию:
mysql> SET GLOBAL init_connect='SET NAMES cp1251'
При указании более одного оператора, в качестве разделителя используется точка с запятой, «;». Так-же значение данной переменной можно установить через командную строку или через конфигурационный файл my.cnf.
Введена с версии 4.1.2. - init_file
- Переменная устанавливает путь к файлу, содержащему список SQL-операторов, которые NySQL сервер должен выполнить при старте. Каждый оператор должен быть на отдельной строке и не содержать комментариев. Кроме того файл инициализации может быть задан при старте MySQL сервера, параметром —init-file.
- init_slave
- В данной переменной может быть установлена строка, выполняемая подчиненным сервером репликации при каждом старте SQL-потока. Введена с версии 4.1.2.
- interactive_timeout
- Интервал времени в секундах, в течение которых сервер ожидает активности на интерактивном соединении, до его закрытия.
- join_buffer_size
- Размер буфера использующегося при операциях объединения таблиц ( если не используются индексы ). Буфер устанавливается один раз во время каждой операции объединения.
- key_buffer_size
- Индексные блоки таблиц MyISAM буферизуются. Все потоки используют общий буфер. Данная переменная устанавливает размер буфера для индексных блоков. Значение данной переменной нужно увеличивать, для повышения эффективности обработки индексов, как при операциях чтения, так и записи. В качестве рекомендуемого значения, обычно указывают 25% от общего объема оперативной памяти, но важно не переборщить, что-бы система не начала сбрасывать данные в SWAP( страничный файл ), что заметно снижает производительность.
- key_cache_age_threshold
- Переменная управляет понижением статуса буферов кэша ключей с hot hot-chain, до warm sub-chain.Чем меньше значение данной переменной, тем быстрей происходит данное понижение. Минимальное значение — 100. Значение по-молчанию — 300.
Введена с версии 4.1.1. - key_cache_block_size
- Размер блока кэша ключей ( в байтах ). Значение по-умолчанию — 1024.
Введена с версии 4.1.1. - key_cache_division_limit
- Данная переменная определяет разделительную точку между горячей ( hot sub-chain ) и теплой ( warm sub-chain ) подцепочками буферной цепочки кэша ключей. В переменной содержится процент буферной цепочки, который используется для теплой подцепочки ( warm sub-chain ). Возможные значения — диапазон от 0 — 100. Значение по-умолчанию — 100
Появилась с версии MySQL 4.1.1. - language
- Переменная определяет путь к каталогу языковой поддержки. Выбранный язык используется для вывода сообщений об ошибках.
- large_file_support
- Определяет, был-ли MySQL сервер скомпилирован с поддержкой больших файлов.
- large_pages
- Определяет, включена-ли поддержка больших страниц памяти ( более 4 Кбайт ).
Введена с версии MySQL 5.0.3. - lc_time_names
- Данная переменная устанавливает локаль MySQL сервера, что дает возможность выводить функциями DATE_FORMAT(), DAYNAME() и MONTHNAME(), названия дней и месяцев на национальном языке.
- licanse
- Тип лицензии текущего MySQL сервера.
- local_infile
- Поддерживается-ли ключевое слово LOCAL для оператора LOAD DATA INFILE.
- ON — поддерживает
- OFF — не поддерживает
- locked_in_memory
- Переменная сообщает, заблокирован-ли MySQL сервер с помощью параметра —memlock или нет.
- log
- Регистрация всех запросов в общем журнале запросов.
- ON — включено
- OFF — выключено
- log_bin
- Регистрация всех запросов в бинарном журнале.
- ON — включено
- OFF — выключено
- log_bin_trust_function_creators
- Данная переменная применяется когда включена регистрация запросов в журнальных файлах, она позволяет предотвратить попадание туда, небезопасных хранимых процедур.
- log_error
- Переменная устанавливает путь к лог файлу ошибок.
- log_output
- Переменная задает формат хранения общего лога запросов и лога медленных запросов. Может принимать одно из трех значений:
- TABLE — записи журналов хранятся в таблице
- FILE — записи журналов хранятся в файлах
- NONE — отключить журналирование
Введена с версии MySQL 5.1.6.
- log_queries_not_using_indexes
- Включать-ли в лог медленных запросов, запросы не использующие индексы.
- ON — включено
- OFF — выключено
Введена с версии MySQL 5.1.11.
- log_slave_updates
- Переменная определяет, должны-ли обновления, получаемые подчиненным сервером в процессе репликации, регистрироваться в собственном бинарном журнале подчиненного сервера. Данная переменная работает, только если на подчиненном сервере активизировано ведение бинарного лога.
- log_slow_queries
- Регистрировать-ли медленные запросы в соответствующем лог файле. Медленным считается запрос, выполняющийся дольше значения, установленного в переменной long_query_time.
- log_warnings
- Данная переменная определяет, выводить-ли дополнительные предупреждения во время старта и работы MySQL сервера. Значение по-молчанию — 1. При значении больше единицы, ошибки в лог файл не заносятся.
- long_query_time
- Пороговое значение времени в секундах, по истечении которого запрос считается медленным. Если включено логгирование медленных запросов log_slow_queries, запрос попадает в соответствующий лог файл. Кроме того, счетчик slow_queries увеличивается на единицу. Стоит обратить внимание, что подсчитывается не процессорное, а реальное время. То есть запрос, который укладывается в отведенное время на слабо нагруженной системе, на системе под высокой нагрузкой, может выполнятся дольше отведенного времени.
- low_priority_updates
- Если данная переменная включена ( установлено значение 1 ), все операторы INSERT, UPDATE, DELETE и LOCK TABLE WRITE, будут ожидать пока на текущей таблице не останется невыполненных операций SELECT или LOCK TABLE READ.
- lower_case_file_systems
- Даная переменная определяет, имеет-ли значение регистр имен файлов и каталогов.
- lower_case_table_names
- Переменная определяет обработку регистра символов в именах таблиц.
- 0 — сравнение имен таблиц осуществляется с учетом регистра
- 1 — имена таблиц сохраняются на диск в нижнем регистре, сравнение имен таблиц не чувствительно к регистру
- 2 — имена таблиц сохраняются во введенном пользователем регистре, но сравнение все равно производится в нижнем регистре
Не устанавливайте значение 0 для данной переменной на системах, не поддерживающих имена файлов чувствительных к регистру ( Windows, MacOS X ).
- max_allowed_packet
- Максимальный объем одного SQL-запроса к серверу. Изначально буфер сообщений имеет размер net_buffer_length и при необходимости, автоматически увеличивается до значения данной переменной.
- max_binlog_cache_size
- Размер кэша для транзакций с большим количеством операторов. В случае нехватки, будет выдано соответствующее сообщение об ошибке ( «Multi-statement transaction required more than ‘max_binlog_cache_size’ bytes of storage» ).
- max_binlog_size
- Данная переменная задает максимальный размер бинарного лог файла. При достижении размером файла, данного значения, будет открыт новый файл лога.
- max_connect_errors
- Задает максимально количество неудачных попыток подключения с хоста. Значение по-умолчанию 10. При достижении данного значения, хост блокируется. Разблокировать хост можно с помощью:
mysql> FLUSH HOSTSg
- max_connections
- Максимально количество соединений клиентов с сервером.
- max_delayed_threads
- Ограничение числа потоков для обработки INSERT DELAYED
- max_error_count
- Данная переменная устанавливает максимальное количество сообщений об ошибках и предупреждениях, для вывода операторами SHOW ERRORS и SHOW WARNINGS.
Введена с версии MySQL 4.1.0. - max_heap_table_size
- Данная переменная устанавливает максимальный размер таблиц типа MEMORY ( HEAP ). Изменение значения этой переменной никак не отражается на уже существующих в памяти таблицах и влияет только на те, которые будут созданы заново.
- max_insert_delayed_threads
- Синоним для переменной max_delayed_threads
- max_join_size
- MySQL сервер блокирует операторы SELECT, которым может потребоваться проверить, количество комбинаций строк или провести поисков на диске, больше, чем указано в данной переменной. Данная переменная предотвращает использование операторов SELECT, в которых ключи используются некорректно или выполнение которых может занять слишком много времени. Ее удобно использовать, при необходимости избежать длительных операций объединения таблиц не использующих конструкцию WHERE или запросы возвращающие результат в миллионы строк.
- max_length_for_sort_data
- Переменная задает в байтах размер данных, который используется при оптимизации запросов ORDER BY с помощью неиндексированных столбцов.
- max_prepared_stmt_count
- Определяет максимальное количество разрешенных динамических запросов. Значение по-умолчанию — 16 382, возможные значения — от 0 до 1 000 000.
Введена с версии MySQL 5.1.10. - max_relay_log_size
- Размер журнала ретрансляции на подчиненном сервере репликации. При достижении файлом размера, заданного этой переменной, будет создан новый файл журнала. Возможные значения — от 4096 байт до 1 гигабайта.
- max_seeks_for_key
- Максимально допустимое количество операций при поиске строк по ключам.
- max_sort_length
- Переменная задает количество байт при операциях сортировки значений BLOB или TEXT. Использованы только первые max_sort_length, остальные игнорируются.
- max_tmp_tables
- Данная переменная определяет максимальное количество одновременно открытых временных таблиц для каждого клиента.
В настоящий момент не используется и не учитывается. - max_user_connections
- Максимальное число одновременных подключений для одной учетной записи MySQL. Значение по-умолчанию 0, отсутствие каких-либо ограничений.
- max_write_lock_count
- Количество блокировок на запись, после которых можно выполнить некоторое количество незаконченных блокировок на чтение
- myisam_data_pointer_size
- Размер указателя по-умолчанию ( в байтах ), используемый оператором CREATE TABLE для таблиц MyISAM, когда не задан ни один параметр MAX_ROWS. Возможные значения — от 2 до 8. Значение по-умолчанию — 4.
Удалена в версии 5.0.6. - myisam_max_sort_file_size
- Размер временного файла, использующегося при восстановлении индексов MyISAM, при использовании операторов REPAIR TABLE, ALTER TABLE или LOAD DATA INFILE. Если размер необходимого файла больше значения данной переменной, для создания индекса будет использоваться кэш ключей, что намного медленней.
Значение этой переменной задается в мегабайтах. - myisam_recover_options
- Данная переменная получает значение параметра —myisam-recover.
- myisam_sort_buffer_size
- Размер буфера выделяемого для сортировки MyISAM индексов с помощью оператора REPAIR TABLE или при создании индексов операторами CREATE TABLE, ALTER TABLE.
- myisam_stats_method
- Данная переменная определяет, как рассматривать значение NULL при построении индекса:
- nulls_equal — NULL-значения воспринимаются как эквивалентные записи
- nulls_unequal — NULL-значения интерпретируются как уникальные
Переменная появилась с версии MySQL 5.0.14. В предыдущих версиях, сервер ведет себя как если-бы значение этой переменной было установлено в nulls_equal.
- myisam_use_mmap
- Использование метода «отображение в память», при чтении/записи MyISAM таблиц.
- ON — включено
- OFF — выключено
Появилась в версии MySQL 5.1.4.
- named_pipe
- Поддерживает-ли MySQL сервер соединения через именованные каналы.
- ON — поддерживает
- OFF — не поддерживает
Переменная актуальна только при работе в операционной системе Windows.
- net_buffer_length
- Размер буфера для соединений, устанавливаемый сервером в промежутках между запросами. Если операторы передаваемые MySQL серверу не помещаются в буфер, его размер автоматически увеличивается до размера max_allowed_packet.
- net_read_timeout
- Таймаут ожидания, получения данных от клиента. Используется только при TCP соединениях и не используется при подключениях через UNIX-сокет или именованный канал.
- net_retry_count
- Количество попыток восстановить соединение в случае прерывания передачи данных, прежде чем задача будет завершена.
- net_write_timeout
- Таймаут ожидания, пока данные будут записаны в соединение, по истечении данного времени, операция записи будет отменена.
- new
- Поддержка возможностей сервера MySQL версии 4.1 на версии сервера 4.0.
- ON — включена
- OFF — выключена
На MySQL сервере версии выше 4.1, всегда принимает значение OFF.
- old_passwords
- Включить поддержку старого формата паролей, использовавшегося до версии 4.1.
- ON — включена
- OFF — выключена
Введена с версии 4.1.1.
- open_files_limit
- Сколько файлов, операционная система, разрешает открыть MySQL серверу. Данная переменная выводит значение, установленное в системной переменной sysctl kern.maxfilesperproc( FreeBSD ).
- optimizer_prune_level
- Использование эвристического механизма при оптимизации запросов.
- 0 — эвристика отключена, используется всесторонний анализ
- OFF — использовать эвристический механизм
Введена с версии 5.0.1.
- optimizer_search_depth
- Максимальная глубина поиска для оптимизатора запросов. Если значение данной переменной больше чем количество связей таблиц в многотабличном запросе, лучше генерируется схема оптимизации, однако, ее создание может занять значительное время. Значение, меньшее, чем количество связей в многотабличном запросе, приведет к более быстрому созданию схемы оптимизации, однако выполнение запроса по такой схеме, может быть далеко не оптимальным. Установка значения в 0 позволяет системе самой выбирать наиболее оптимальное в данный момент значение.
Введена с версии 5.0.1. - pid_file
- Путь к файлу, содержащему PID процесса. Так-же может быть установлена из командной строки, параметром —pid-file.
- plugin_dir
- Путь к каталогу плагинов.
Ввведена с версии MySQL 5.1.2. - port
- Порт, прослушиваемый MySQL сервером. Значение по-умолчанию 3306.
- preload_buffer_size
- Размер буфера, зарезервированного для загрузки индексов.
Введена с версии 4.1.1. - prepared_stmt_count
- Счетчик текущего количества динамических запросов. Максимальное значение устанавливается переменной max_prepared_stmt_count.
Введена с версии MySQL 5.1.10. - protocol_version
- Данная переменная содержит версию протокола, используемого MySQL сервером.
- query_alloc_block_size
- Размер блоков памяти, выделяемых для объектов, создаваемых при анализе и выполнении запросов. Данная переменная может облегчить жизнь при наличии проблем с фрагментацией памяти.
- query_cache_limit
- Запросы, результат которых превышает значение данной переменной, не будут размещаться в кэше запросов.
- query_cache_min_res_unit
- Минимальный размер блоков, выделяемых кэшем запросов. Значение по-умолчанию — 4 Кбайта.
Введена с версии MySQL 4.1.0. - query_cache_size
- Объем памяти, выделенной для кэширования результатов запросов.
По-умолчанию данный кэш отключен, значение — 0. - query_cache_type
- Управление кэшированием запросов.
- OFF или 0 — MySQL сервер кэширует запросы и не извлекает результаты из кэша. Однако, это не освобождает буфер кэша запросов, для этого следует установить переменную query_cache_size в значение 0.
- ON или 1 — MySQL-сервер будет кэшировать все запросы, кроме начинающихся с конструкции SELECT SQL_NO_CACHE
- DEMAND или 2 — MySQL-сервер будет кэшировать только запросы, начинающихся с конструкции SELECT SQL_CACHE
- query_cache_wlock_invalidate
- Управление блокировками таблиц MyISAM.
- ON — при блокировке WRITE, будут игнорироваться любые запросы в том числе и на чтение, то есть, пока таблица заблокирована, все клиенты будут ждать.
- OFF — при запросе клиентом, блокировки WRITE, остальные клиенты не блокируются на чтение, если результат запроса присутствуют в кэше.
- query_prealloc_size
- Размер постоянного буфера, использующегося для синтаксического анализа и выполнения запросов. Рекомендуется увеличить значение данной переменной при работе со сложными запросами, тогда отпадает необходимость распределять память во время выполнения запроса.
- range_alloc_block_size
- Размер блоков, выделяемых при оптимизации области памяти.
- read_buffer_size
- Размер буфера, выделяемого потоком для каждой сканируемой таблицы. При частом последовательном сканировании, рекомендуется увеличить значение данной переменной.
- read_only
- Данная переменная применяется на подчиненном сервере репликации. Если ее значение установлено в ON, изменения принимаются только с основного сервера репликации, но не от клиентов.
- relay_log_purge
- Управление режимом удаления старых журнальных файлов.
- ON — режим очистки включен
- OFF — режим очистки выключен
Введена с версии MySQL 4.1.1.
- read_rnd_buffer_size
- Размер буфера, выделяемого для чтения строк после сортировки, что-бы избежать повторного поиска на диске. Увеличение значения данной переменной может существенно увеличить эффективность конструкции ORDER BY.
Имейте в виду, так как данный буфер выделяется для каждого клиента, не следует устанавливать чересчур большое значение. - rpl_recovery_rank
- Не используется
- secure_auth
- Разрешить-ли использование паролей в старом формате. Включение данной переменной равнозначно использованию параметра —secure-auth при запуске MySQL сервера.
- ON — разрешить
- OFF — запретить
- server_id
- Используется для присвоения MySQL серверу уникального ID. Так-же можно использовать параметр командной строки —server-id при запуске сервера.
- shared_memory
- Разрешено-ли использовать разделяемую память соединений. Применяется только в операционной системе Windows.
- ON — разрешить
- OFF — запретить
- shared_memory_base_name
- Имя для разделяемой памяти соединений. Применяется для запуска нескольких MySQL серверов. Используется только в Windows.
Введена с версии 4.1.1. - skip_external_locking
- Использование MySQL сервером внешних блокировок.
- ON — включить
- OFF — выключить
- skip_networking
- Принимать-ли MySQL серверу TCP/IP соединения по сети, или разрешить только локальные.
- ON — принимать только локальные соединения
- OFF — принимать TCP/IP соединения по сети
- skip_show_database
- Ограничивает использование оператора SHOW DATABASES( вывести список таблиц ).
- ON — разрешает использовать оператор SHOW DATABASES только пользователям имеющим привилегию SHOW DATABASES или привилегии для доступа к базе данных
- OFF — оператор SHOW DATABASES могут использовать все пользователи
- slave_compressed_protocol
- Использовать сжатие при обмене данными между основным и подчиненным серверами репликации. Сжатие данных возможно только если его поддерживают оба сервера.
- ON — использовать сжатие
- OFF — не использовать сжатие
- slave_load_tmpdir
- Путь к папке временных файлов подчиненного сервера для репликации оператора LOAD DATA INFILE.
- slave_net_timeout
- Время, которое подчиненный сервер будет ожидать данные с главного сервера, прежде чем разорвать соединение.
- slave_skip_errors
- При включении данной переменной, значение ON, подчиненный сервер будет игнорировать ошибки репликации.
- slow_launch_time
- Если превышается значение этой переменной, сервер увеличивает значение счетчика slow_launch.
- slow_query_log
- Управление логгированием медленных запросов. Можно использовать параметр запуска —log-slow-queries.
- ON — включить
- OFF — выключить
Введена с версии 5.1.12
- slow_query_log_file
- Имя для файла медленных запросов. Можно установить при запуске MySQL сервера, параметром —log-slow-queries.
Введена с версии 5.1.12 - socket
- Путь к файлу UNIX-сокета, используемого для соединения с клиентами. В системе Windows — имя именованного канала для локальных соединений.
- sort_buffer_size
- Размер буфера, выделяемого на поток при выполнении операций сортировки. Для ускорения операций ORDER BY, GROUP BY рекомендуется увеличить данное значение.
- sql_mode
- Режим работы MySQL-сервера.
- sql_slave_skip_counter
- Данная переменная определяет, какое количество событий основного сервера, должен проигнорировать подчиненный сервер репликации.
- ssl_ca
- Путь к файлу листа доверия SSL CA.
Введена с версии MySQL 5.1.11. - ssl_capath
- Путь к каталогу с SSL сертификатом.
Введена с версии MySQL 5.1.11. - ssl_cert
- Переменная задает имя SSL сертификата, используемого для SSL соединений.
Введена с версии MySQL 5.1.11. - ssl_cipher
- Список разрешенных для SSL алгоритмов шифрования.
- ssl_key
- Имя файла ключей для SSL соединений.
- storage_engine
- Переменная является синонимом table_type.
- sync_binlog
- Синхронизация данных в памяти с жестким диском. Включение данной переменной снижает вероятность потери данных, но плата за это — некоторое снижение производительности.
- 0 — не производить синхронизацию.
- 1 — синхронизировать данные после записи в журнал команды sync_binlog.
Введена с версии MySQL 4.1.3.
- sync_frm
- При установке значения 1, при создании любого не временного файла, данные в оперативной памяти синхронизируются с диском.
Введена с версии MySQL 4.1.3. - system_time_zone
- Данная переменная содержит информацию о часовом поясе, которая извлекается из операционной системы при старте MySQL сервера. При необходимости, с помощью этой переменной, можно скорректировать часовой пояс, но предпочтительней воспользоваться переменной time_zone, устанавливающей часовой пояс для конкретного соединения а не для всего сервера.
- table_cache
- Старое название для переменной table_open_cache.
Начиная с версии MySQL 5.1.3, следует использовать именно table_open_cache. - table_definition_cache
- Переменная задает количество идентификаторов, которые могут храниться в кэше определений. При использовании большого количества таблиц, имеет смысл увеличить значение данной переменной для повышения производительности.
Появилась с версии MySQL 5.1.3. - table_lock_wait_timeout
- Время ожидания блокировки таблицы. Значение по-умолчанию — 50 секунд.
Появилась с версии MySQL 5.0.10. - table_open_cache
- Максимально разрешенное количество открытых таблиц.
- table_type
- В данной переменной содержится тип таблицы по-умолчанию ( MyISAM, InnoDB или BDB ).
- thread_cache_size
- Данная переменная определяет, сколько потоков, сервер должен поместить в кэш для повторного использования. После отключения клиента, потоки не удаляются а помещаются в кэш, как только MySQL серверу понадобятся новые потоки, он берет их из кэша. Новые потоки создаются только в случае, если кэш пуст. Увеличение значения этой переменной может повысить производительность MySQL сервера, но только в системах с хорошей реализацией потоков.
- thread_concurrency
- В некоторых операционных системах, с помощью этой переменной, можно задать количество одновременно запускаемых потоков.
- thread_stack
- Данная переменная задает размер стека для каждого потока.
- time_format
- В настоящий момент не используется.
- time_zone
- Переменная определяет текущий часовой пояс.
- tmp_table_size
- Если размер временной превышает размер, установленный этой переменной, она сбрасывается на диск. При наличии достаточного количества памяти на сервере, рекомендуется повысить значение данной переменной, по ускорения запросов с конструкцией GROUP BY.
- tmpdir
- Путь к каталогу для временных таблиц и файлов. Начиная с версии MySQL 4.1, этой переменной можно присваивать список путей, разделенных двоеточием «:» ( для Windows, Netware и OS/2 в качестве разделителя используется точка с запятой «;» ).
- transaction_alloc_block_size
- Размер блоков памяти, выделяемых для сохранения запросов, являющихся частью транзакции, в бинарный журнал регистрации.
- transaction_prealloc_size
- Переменная задает размер постоянного буфера, выделяемого для сохранения запросов, являющихся частью транзакции, в бинарный журнал регистрации. Данный буфер не высвобождается в промежутках между запросами.
- tx_isolation
- Задает уровень локализации транзакций по-умолчанию.
- updatable_views_with_limit
- Переменная определяет, можно-ли использовать обновления с помощью оператора UPDATE, у которого отсутствует условие WHERE со ссылкой на первичный ключ или индекс.
- 1 или YES — подобное обновление разрешено, при этом выдается предупреждение.
- 0 или NO — подобное обновление не допускается.
Переменная введена с версии MySQL 5.0.2.
- version
- Содержит версию MySQL сервера.
- version_bdb
- Содержит версию BDB движка.
- Комментарий к текущей версии MySQL сервера.
- version_compile_machine
- Тип архитектуры, для которой была скомпилирована данная версия MySQL сервера.
- version_compile_os
- Тип операционной системы, для которой скомпилирована данная версия MySQL сервера.
- wait_timeout
- Таймаут в течение которого MySQL сервер ожидает активности от неинтерактивного соединения, прежде чем закрыть его.