Настройка mysql


Содержание

Sergey Danielyan

Правильная установка и настройка MySQL в Linux

Эта статья, по замыслу, должна служить пошаговым руководством по корректной настройки MySQL сервера в Linux в общем и в CentOS в частности, начиная от подготовки системы и заканчивая настройкой прав пользователей.
В этот раз текста будет минимум — только команды.

Установка MySQL

Проверяем, установлен ли MySQL сервер

Если установлен, шаги по установке можете пропустить, хотя ознакомиться я все же советую с ними.

Существуют следующие основные пакеты связанные с mysql:

  • mysql — клиент mysql
  • mysql-server — сервер mysql
  • mysql-devel — для разработки и подключения библиотек и хидеров mysql
  • mysql-connector-java — JDBC коннектор (используется, например, в EJBCA)

sudo yum install mysql mysql-server mysql-devel mysql-connector-java

Теперь надо установить сервер mysql на запуск в определенные runlevel‘ы (2, 3 и 5):

Если кто забыл соответствие цифрового значения runlevel‘а символьному:

Стартуем демон mysql:

Настройка сервера

Теперь пора настроить сервер. Начнем с пользователей.

Вот состояние таблицы user до начала действий с ней:

mysql -u root
> use mysql
> select host,user from user;

5 rows in set (0.00 sec)
> quit

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

Для настройки базовых вещей в сервере, запустим настройку сервера через mysql_secure_installation. На время этой установки, пароль будет security. Ваш же пароль, как понимаете, должен отличаться.

Запустится скрипт, с запросами на то или иное действие. Вот ответы:

Skip root password for root
Мы еще не устанавливали пароль для root, поэтому при запуске скрипта и запросе пароля для root , просто нажмите Enter .

Install new password for root: security
А вот тут можно установить пароль для root

Do remove an anonymous user
На вопрос о том, удалить ли анонимного пользователя, отвечаем да

Do not disallow remote connections
Не запрещаем коннект к нашему северу с удаленных серверов (если, конечно, эта опция вам нужна, в другом случае, запретите ее)

Do remove a test database
Тестовая база нам не нужна — удаляйте ее

Do reload the privileges
Перегрузим привилегии для их активации

Теперь для всех root пользователей установлен пароль.

Если в ходе этой конфигурации вы не установили пароль для root , можете сделать это так:

SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’localhost.localdomain’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’127.0.0.1’ = PASSWORD(‘security’);

UPDATE mysql.user SET Password = PASSWORD(‘security’) WHERE user = ‘root’;

Если же вы не запускали конфигурацию через mysql_secure_installation или не хотите этого делать по каким-то другим причинам, следующие команды удалят any пользователей:

DROP USER »@’localhost’;
DROP USER »@’localhost.localdomain’;

Также, пароль для IPv6 localhost (@::1) можно установить таким образом:

Близится финал нашего действия. Осталось две вещи:

  • открыть порты для mysql:

sudo iptables -I INPUT -p tcp —dport 3306 -m state —state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I OUTPUT -p tcp —sport 3306 -m state —state ESTABLISHED -j ACCEPT

выставить кодировку UTF-8 по-умолчанию — файл /etc/my.cnf :

[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci’
character-set-server = utf8
collation-server = utf8_unicode_ci

[client]
default-character-set = utf8

Оптимизация MySQL с помощью настроек в my.cnf

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

Введение

Как я успел разобраться, при каждом соединении с MySQL создается mysqld (демон), который и обрабатывает все запросы соединения. Вот в блоке [mysqld] описывается именно настройки таких демонов.

Итак, давайте рассмотрим настройки демона [mysqld].

Выставить кодировку по умолчанию можно так:

character-set-server = utf8
collation-server = utf8_unicode_ci

Защитить сервер от кривых рук программиста, способного join`ом на 10 миллионов записей похоронить даже 4-х процессорный сервер, можно так:

Буфер можно выставить 25% от общего объема оперативной памяти:

как я понял, это буфер обмена для всех демонов, т.е. реально будет: key_buffer_size / кол-во демонов = . M

Размер стека для каждого потока (демона):

стек — это место для хранения списка задач (открыть таблицу, выполнить запрос, закрыть и т.п.)

Кол-во потоков, которые сервер должен поместить в кэш для повторного использования:

т.е. если к примеру есть часто повтояющийся SELECT * FROM myTable, то он попадет в кэш, чтобы не выполняться каждый раз.

Полезная настройка: если размер временной таблицы превышает размер, установленный этой переменной, она сбрасывается на диск. При наличии достаточного количества памяти на сервере, рекомендуется повысить значение данной переменной, по ускорения запросов с конструкцией GROUP BY

Установить максимальный размер таблиц типа MEMORY ( HEAP ) можно так:

Размер буфера, выделяемого демону при выполнении операций сортировки. Для ускорения операций ORDER BY, GROUP BY рекомендуется увеличить данное значение

Размер буфера выделяемого для сортировки MyISAM индексов с помощью оператора REPAIR TABLE или при создании индексов операторами CREATE TABLE, ALTER TABLE:

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

Размер буфера, выделяемого для чтения строк после сортировки, что-бы избежать повторного поиска на диске. Увеличение значения данной переменной может существенно увеличить эффективность конструкции ORDER BY. Имейте в виду, так как данный буфер выделяется для каждого демона, не следует устанавливать чересчур большое значение.

Размер буфера использующегося при операциях объединения таблиц ( если не используются индексы ). Буфер устанавливается один раз во время каждой операции объединения

Величина буфера, который используется для индексов, всех демонов. Если используется много DELETE или INSERT запросов к таблицам с большим кол — индексов, то увеличение значения повысит скорость выполнения таких запросов. Для достижения еще большей скорости нужно использовать LOCK TABLES. Советуют устанавливать не больше чем 1/3 озу и не больше объема всех б.д.

Максимально количество соединений клиентов с сервером

Задает максимально количество неудачных попыток подключения с хоста. Значение по-умолчанию 10. При достижении данного значения, хост блокируется. Разблокировать хост можно с помощью: mysql> FLUSH HOSTS

Максимальное число одновременных подключений для одной учетной записи MySQL. Значение по-умолчанию 0, отсутствие каких-либо ограничений

table_cache старое название для переменной table_open_cache, в нем указывается к оличество открытых таблиц для всех демонов. Увеличение значения приведет к увеличению количества используемых дескрипторов файла. Советуют рассчитывать по формуле : количество одновременных соединений * количество открытых таблиц в соединении. Т .е. для каждого соединения используется свои ячейки из кэша. Для проверки можно запустить mysqltuner.pl

Количество одновременно запускаемых демонов, советуют формулу: количество ядер процессора умножаем на 2

Размер буфера для соединений, устанавливаемый сервером в промежутках между запросами

Максимальный объем одного SQL-запроса к серверу. Изначально буфер сообщений имеет размер net_buffer_length и при необходимости, автоматически увеличивается до значения данной переменной.

Переменная задает количество байт при операциях сортировки значений BLOB или TEXT. Использованы только первые max_sort_length, остальные игнорируются

Полезная настройка: Изначальная величина буфера запросов. Если большинство запросов большого размера (например, при вставке записей с BLOB), его необходимо увеличить!

Полезная настройка: запросы, результат которых превышает значение данной переменной, не будут размещаться в кэше запросов.

Полезная настройка: объем памяти, выделенной для кэширования результатов запросов. По-умолчанию данный кэш отключен, значение — 0

Полезная настройка: вид кэширования:

Значение Объяснение Примечание
OFF Не кэширует и не извлекает результаты (по-умолчанию).
1 ON Кэширует все результаты, кроме запросов SELECT SQL_NO_CACHE . .
2 DEMAND Кэширует только запросы SELECT SQL_CACHE . .

не забывайте про query_cache_startup_type.

Настройки innodb (извините, что без пояснений, просто оставлю их тут, чтобы не забыть):

innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:2000M;ibdata2:10M :autoextend
innodb_log_group_home_dir = /var/lib/mysql
innodb_buffer_pool_size = 64M
innodb_additional_mem_poo l_size = 32M
innodb_file_io_threads = 8
innodb_lock_wait_timeout = 50
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_c ommit = 2
innodb_flush_method = O_DIRECT

transaction-isolation = READ-COMMITTED
default-character-set = utf8

Настройки блока для создания дампов

Старое название следующей настройки: character-set-server = utf8 выдает ошибку: /usr/bin/mysql_upgrade: unknown variable ‘character-set-server=utf 8

Как находить проблемные места

  1. смотрим превышения в /myadmin/server_status.php
  2. смотрим инфу по ним в мане
  3. исправляем конфиги
  4. улучшаем SQL-запросы

И не забываем про разгон: 1 — 2 — 3 — 4

Надеюсь, кому-нибудь помог разобраться, удачки в освоении MySQL.

Установка Mysql: пошаговая инструкция

Установка MySQL никогда не вызывает проблем как на платформе Windows, так и на всем семействе линуксоидов. На официальном сайте можно найти MySQL Installer, ответить на все его вопросы и моментально получить работающую систему управления базами данных.

Особенности установки MySQL

Варианты, при которых стандартный установщик сработает не так как нужно, ничтожно малы, но даже если они случаются можно попробовать установить другую версию, перепроверить файл my.ini и попросту разрешить доступ к порту 3306, что обычно является причиной проблем.

Использование MySQL в реальных проектах обязательно приведет к необходимости работы с командной строкой сервера, к решению административных задач:

  • пользователи;
  • базы данных;
  • скорость работы;
  • оптимизация запросов;
  • миграция данных и пр.

При создании крупных веб-проектов потребуется использование тонких настроек MySQL и управление ее функциями в полном объеме. Когда веб-сайт подойдет к планке высоконагруженного ресурса, понадобится корректировать и тестировать my.ini — конфигурацию системы управления данными.

В среде Windows нередки случаи, когда трудно или просто невозможно выполнить импорт базы данных удобными средствами (например, phpMyAdmin), но всегда все можно сделать командной строкой.

Если однажды установленный и прекрасно работавший сервер лег, то первая причина этой проблемы — настройки my.ini (my.cnf для линуксоидов).

Традиции и особенности операционных систем

Установка MySQL может быт выполнена на ином порту (стандартно — 3306), а следовательно, нет необходимости сносить то, что уже стоит.

«Магические» пакеты и репозитории в линуксоидах — гарантия непрерывной обновляемости при предельно четком движении к цели: ни при каких обстоятельствах система не должна поддаваться панике.

Возможность установки, обновления и удаления, вплоть до автоматического, любого софта в среде Windows при движении по направлению «мы знаем, что нужно пользователю, и всегда можем ему помочь».

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

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

Установка MySQL предваряется удалением предыдущей установки:

и установкой пакетов:

Удаление предыдущей версии производится из командной строки в режиме администратора. Не всегда доступно удалить предыдущую установку в разделе «Установка и удаление программ». Недостаточно просто остановить службу или почистить реестр.

Установка MySQL на Windows

Процесс не представляет проблем ни для профессионала, ни для новичка. Основное правило, которому следует доверять и следовать при установке: MySQL работает надежно и безукоризненно.

Вспомогательное правило: следует рассчитывать на установку из zip-архива и собственные силы. Использование лояльного и «самостоятельного» установщика MySQL — это только для знакомства с вопросом и процессом.

Только при установке посредством MySQL Installer будет возможность удалить продукт в разделе «Установка и удаление программ».

Установка Apache, MySQL, PHP на Windows — «веками» отработанный процесс. Все всегда работает стабильно, надежно, эффективно. Если что-то идет не так, значит, есть ошибка в файлах конфигурации или инициализации, незаслуженно забыт файл hosts, работает конфликтующее приложение, есть проблемы от предыдущей установки (служба, реестр).

Быстрый старт

Первый шаг: на официальном сайте скачать zip-архив нужной версии. Последняя на сегодня 5.7.21 и разархивировать ее.

Второй шаг: выбрать диск и папку, в которой будет находиться СУБД и ее базы данных. Лучше всего, когда установка Apache, MySQL и PHP выполняется в одном месте. Но это обстоятельство абсолютно не принципиально. Иное решение просто создаст трудности при исполнении реальных проектов. Доступ к папкам этих продуктов будет необходим время от времени и вспоминать, где что установлено — лишняя трата времени.

Илон Маск рекомендует:  Faq пример получения списка запущенных приложений

Третий шаг: написать файл «my.ini». Это очень важный файл, но для начала подойдет такой образец:

Это содержание файла позволяет запустить сервер без проблем. Если оставить указание только на папку MySQL и папке его данных, сервер также запустится, но стремится в начале установки планировать и проектировать my.ini не перспективно. Слишком много параметров, а понимать их использование без практики — не слишком перспективная идея.

Существенное обстоятельство: на просторах интернета можно найти тонну образцов my.ini. Важно смотреть на дату предлагаемого варианта. Мир так быстро меняется, что старые варианты важных файлов не всегда соответствуют свежим версиям программ.

Уточнение положения MySQL и установка

После того как zip-архив будет разархивирован, его следует дополнить папками:

Имена этих папок могут быть любыми, но пакет к инсталляции должен быть укомплектован указанием на место для импорта/экспорта файлов, местом для журнала, местом для временных файлов и папкой, где будут размещаться базы данных MySQL.

После того как все будет готово, следует запустить командную строку в режиме администратора и выполнить всего две команды. Следует обратить внимание: команды исполняются в папке bin пакета MySQL, в том месте куда он помещен.

Процедура не занимает много времени, но после завершения операции «mysqld —console» командная строка «висит». Следует запустить вторую командную строку в режиме администратора, чтобы установить пароль пользователя — root.

Временный пароль создается и выводится на экран при первой команде. Следует его записать, чтобы не повторять процесс еще раз. В данном примере временный пароль был oRJiT%Im5eBA.

После этих трех команд сервер «стал», но не готов к работе: MySQL — появился в списке служб. Нужно установить пароль для root, добавить пару администраторов и перезагрузить компьютер.

Финальная стадия установки

Установка MySQL завершена, для создания пароля root вновь запускается командная строка в режиме администратора (2).

Во втором окне вводится команда: mysql -u root -p. Здесь вызывается сервер, а не его демон. Будет предложено ввести пароль: нужно ввести ту временную строку, что была выдана ранее. В данном случае: oRJiT%Im5eBA.

Единственная первая и правильная команда — установка пароля для root:

  • ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘sc’;

Вместо ‘sc’ — следует написать желаемый пароль с учетом требований безопасности, то есть не два простых символа, а что-то более-менее сложное. Следует обязательно написать в конце команды символ «;» — это команда! Этот символ обязателен.

В скриншоте показано добавление еще двух администраторов и передача им полных прав управления установленной системой MySQL.

На этом процедура завершена, она не сложнее, чем установка MySQL на Ubuntu, CentOS, FreeBSD или другой вариант линуксоида. Следует отметить: вариант установки под Windows — это простое использование мощного инструментального средства для создания и использования баз данных.

Качество, проверенное временем

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

Установка Apache, MySQL и PHP на локальный компьютер — это своего рода квалификационный признак разработчика (программиста). Умение ставить LAMP и ориентироваться во всех параметрах конфигурационных файлов очень важно.

Отличное программирование на PHP не реально без уверенных знаний самого языка, системы управления базами данных MySQL и Apache. А знание «httpd.conf», «php.ini» и «my.ini» важно и существенно влияет на скорость, качество и надежность разработки.

Установка MySQL в связке с Apache и PHP — хорошая практика, его настройка на оптимальный режим работы — востребованное знание и умение.

Установка сервера MySQL 5.7.11 на Windows 7

Вступление

Обращу внимание, в этой статье я ставлю, только MySQL Server (сервер базы данных) без визуальных «плюшек», MySQL Workbench, Connectors и т.д.


Зачем нужна отдельная установка сервера MySQL

Зачем нужна отдельная установка сервера? Например, для обучения работе с базами данных через «черный экран» командной строки. Или чтобы изучить команды SQL языка и «в прямом эфире» увидеть свои ошибки и поупражняться. Или для самостоятельной сборки локального сервера. Не важно, зачем это нужно, важно, что это можно сделать.

Что такое MySQL

Прежде чем заняться установкой сервера MySQL 5.7.11 на Windows 7 вспомним, что такое MySQL, зачем это нужно. Если вы в курсе, смело пропускайте первую, вступительную, часть.

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

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

Одной из частей, локального сервера является СУБД (система управления базами данных). Для разработки и создания сайтов, вполне достаточно установить бесплатную СУБД MySQL компании Aracle. На март 2020 года актуальна версия MySQL 5.7.11.

Установка сервера MySQL 5.7.11 на Windows 7 поэтапная инструкция

Скачать MySQL 5.7.11 для Windows

Идем на официальный сайт продукта (http://www.mysql.com/downloads/) и страницу скачивания бесплатных компонентов (http://dev.mysql.com/downloads/).

При скачивании внимательно выбираем инсталлятор не путая тип системы компьютера bit-32 и bit-64 Windows 7. Хотя 32 битная программа будет работать на 64-битном процессоре.

Для скачивания выбираем MySQL Installer MSI

Для удобства из способов установки MySQL берем не ZIP архив, а MSI Installer. Это автоматический установщик, который через сеть закачает выбранные программные продукты. Недостаток файла – работает только на машинах подключенных к Интернет, компенсируется простотой установки.

Для скачивания MySQL можно нерегистрироваться

Напомню, посмотреть тип системы своей машины можно в меню Пуск→Компьютер→Свойства→Тип системы.

Проверка типа процессора на компьютере 2.

Запуск инсталлятора

Скачанный exe файл проверяем на вирусы, своей антивирусной программой. Если файл брали на официальном сайте он гарантированно безопасен.

Запускаем инсталлятор MySQL 3.

Побочная установка программных продуктов

Для установки сервера MySQL на компьютере должны быть установлены две обязательные программы:

  • .NET Framework 4
  • Visual Studio C++

По умолчанию Windows 7 уже укомплектован этими программами, правда версии могут быть поменьше.

При запуске инсталлятора MySQL он сообщит о необходимости установить нужные программные продукты. На сколько я помню, инсталлятор подкачает нужные программы. Если нет установите их самостоятельно. В этом нет ничего сложного, но можно почитать у меня:

  • Установить .NET Framework 4
  • Установить Visual Studio C++

4.

License Agreement

Продолжаем установку MySQL. Окно License Agreement. Это стандартное подписание лицензии.

установка сервера MySQL 5.7.11 на Windows 7 соглашение с лицензией 5.

Choosing a Setap Type

Именно на этом этапе, выбираем тип установки, вернее, устанавливаемый комплект MySQL.

  • Developer Default (MySQL Server, MySQL Workbench, Connectors в комплекте)
  • Server Only – выбираем и ставим его, только сервер.
  • Client Only
  • Full (MySQL Server, MySQL Workbench, Connectors на выбор)
  • Custom

Если вы четко понимаете, что делаете, можно выбрать, Custom и в наборе программных продуктов, выбрать нужную комплектацию.

По умолчанию СУБД будет установлена в папку: C:\Program Files\MySQL\MySQL5.7

Еще раз поясню, почему вам может пригодиться, установка Server Only. Например, вы на своем компьютере не используете Visual Studio или, изучаете язык SQL и хотите изнутри понять, как работать с базами данных из командной строки, а не «играть» в визуальные картинки.

Installation

Product Configuration

Type and Networking

На локальной машине MySQL поддерживает порт TCP/IP- ставим галочку;

Обратите внимание: Если поставить галочку в строке: Open freewall port for network access (открытый порт брандмауэра для доступа к сети), то не нужно будет делать дополнительный разрешительных настроек в брандмауэре Windows 7.

Account and Roles

Здесь нам нужно задать пароль для работы в MySQL. Не будем нарушать традиций и ставим пароль: root. Кстати, без установки пароля на следующую страницу не попасть.

Задаем root пароль MySQL 10.

Windows Server

Это окно простых настроек запуска MySQL. Если нужно, чтобы сервер запускался с запуском машины, то выделяете чекбокс, как на фото. Если хотите запускать его по необходимости, чекбокс не выделяете (лучше галочку поставить).

Конфигурация MySQL для Windows server

Здесь тормозим: Смотрим на чекбокс: Show advanced options (показать дополнительные функции).

На следующей странице сервис наполнится конфигурацией, о чем сообщит зелеными галочками.

Установка завершена

Всё! Установка сервера MySQL 5.7.11 на ОС Windows 7, завершена. Можно сделать копию входа в буфер обмена и положить на рабочий стол.

установка сервера MySQL 5.7.11 на Windows 7 завершена

Запуск сервера MySQL

Установка сервера MySQL 5.7.11 на Windows 7 завершена. Проверяем правильность установки и запускаем сервер MySQL.

  • Жмем на иконку запуска сервера: MySQL Command Line Client – Unicode. Он там появится, если вы поставили галочку в пункте (10 Windows Server), в чекбоксе: Start the MySQL Server at System Startup.
  • Откроется «черное окно» приложения: MySQL5.7 Command Line Client.
  • Вводим пароль: root и работаем с СУБД из окон MySQL5.7 Command Line Client.

Пробуем первую команду: знак вопроса [?] или [help]. Сервер покажет элементарные служебные команды.

Установка и настройка MySQL: как настроить MySQL-сервер под высокую нагрузку

Базы данных MySQL используются практически всеми веб-мастерами для полноценного функционирования сайтов. При этом в большинстве случаев все настройки остаются стандартными, а это далеко не всегда оправдано. Дело в том, что изначальная настройка базы данных MySQL предполагает обеспечение корректной работы на слабом компьютерном “железе” и с небольшими БД. Если провести аналогию, то подобную ситуацию можно сравнить с тем, как если бы вы приобрели дорогую зеркальную фотокамеру, но при этом используете только стандартный автоматический режим без каких-либо дополнительных настроек. То же происходит и в случае с базой данных.

Настройка MySQL под высокую нагрузку, конечно же, требует более тщательного внимания к настраиваемым параметрам. Тем не менее, это не настолько сложно, насколько может показаться на первый взгляд.

Настройка MySQL – параметры и их значения

Существует множество различных настроек в MySQL и полное их перечисление займет немало места. Поэтому далее мы рассмотрим ключевые характеристики, изменяя которые вы сможете настроить сервер именно под свои условия работы. Кстати, базовая настройка MySQL проводится без использования дополнительного ПО, нужно только SSH-подключение. Если же вам нужна тонкая настройка MySQL, то в этом вам поможет ISPManager. А теперь давайте перейдем непосредственно к настраиваемым характеристикам:

  • key_buffer_size
    Один из наиболее важных параметров. Если вы используете мало таблиц MyIsam, то значение может быть 32МБ, если же эти таблицы используются в вашей БД повсеместно, то лучше выделить для них 30-40% от всей памяти.
  • innodb_buffer_pool_size
    Эта настройка по своей сути аналогична предыдущей. Только если первая используется для MyIsam-таблиц, то вторая – для InnoDB-таблиц. И если в вашей базе представлены в основном таблицы InnoDB, то объем памяти можно ставить 60-80% от доступной оперативной памяти при том, что такие таблицы не используют кэш ОС, а имеют собственную память. Естественно, если в вашей БД не используют InnoDB-таблицы, то выставлять большой кэш не нужно.
  • innodb_additional_mem_pool_size
    Данный параметр в большинстве случаев слабо влияет на быстродействие БД, но все равно нужно оставлять не менее 20 МБ для удовлетворения внутренних нужд InnoDB.
  • innodb_log_file_size
    Эта настройка MySQL требует изменения в том случае, если в вашей базе данных проводятся частые записи в таблицы, особенно в случае с внушительными объемами этих записей. Рекомендуемое значение – от 64 до 512 МБ, и чем больше размер отведенной памяти, тем быстрее обрабатываются запросы, но при этом дольше будет идти восстановление данных.
  • innodb_log_buffer_size
    Для небольших БД подойдет стандартная настройка сервера MySQL, которая рекомендуется по умолчанию. Если же деятельность пользователей вашей базы имеет ярко выраженные всплески активности, то рекомендуемая настройка MySQL по этому параметру – 16 МБ. Так как содержимое этого буфера обнуляется каждую секунду, нет смысла ставить большее значение.
  • innodb_flush_log_at_trx_commit
    Этот параметр имеет три значения, которые влияют на быстродействие сервера при работе с InnoDB. При значении 1 любая транзакция при своем совершении будет синхронно записываться на диск. При значении 2 транзации будут записываться не на диск, а в кэш, то есть лог пишется на диск с небольшой задержкой, что немного увеличивает быстродействие. При значении 0 запись отключается совсем – это дает наибольшее быстродействие, но при этом велика вероятность потери данных. Рекомендуемое значение параметра – 2.
  • table_cache
    Эта настройка базы данных MySQL на хостинге регулирует объем памяти, выделяемый для открытых таблиц. Открытие и закрытие таблиц – ресурсоемкое действие, поэтому лучше выделить достаточно памяти для того, чтобы держать большинство таблиц открытыми. Начальный параметр лучше ставить 1024 МБ. Если же этого недостаточно, то есть у вас большая БД с огромным количеством таблиц, значение этой настройки можно увеличивать.
  • thread_cache
    За счет этого параметра не допускается создание новых потоков в нормальном режиме функционирования сервера, так как создание и удаление потоков отнимает немало ресурсов. Рекомендуемое значение – 16, при этом по переменной Threads_created можно определить, требуется ли дальнейшее изменение параметра: если значение переменной растет, то и параметр необходимо увеличивать.
  • query_cache_size
    Эта настройка MySQL Ubuntu Server определяет объем кэша для запросов. Не стоит выделять под это слишком много памяти, так как это может не ускорить, а наоборот – замедлить работу базы, ведь ресурсы выделяются еще и на управление данными внутри кэша. Значение этого параметра может достигать 512 МБ, но лучше начать с 32 МБ и постепенно увеличивать до оптимального объема.
Илон Маск рекомендует:  Что такое код postgresql

Под MySQL мы рекомендуем взять выделенный сервер на Windows или Linux. На Linux не потребуется платить за лицензию и настройка более удобна и проста.

Как видите, базовая настройка MySQL на Linux или любой другой ОС не так уж и сложна, достаточно подстроить под ваш сервер основные параметры. Пользуетесь хостингом от RigWEB и столкнулись с непредвиденными трудностями, из-за которых установка и настройка MySQL на Ubuntu или другой Unix-системе не прошла так, как надо? Обратитесь за помощью к сотрудникам техподдержки. Вы получите квалифицированную консультацию и помощь в настройке MySQL, после чего сможете продолжить работу над своим веб-проектом.

Настройка MYSQL под Linux

Сегодня мы поговорим с Вами о настройке mysql под linux (unix, freebsd) на VPS/VDS сервере. Я не буду касаться аспектов установки mysql на сервер, благо, в интернете достаточно информации.

Где же хранятся настройки mysql?

На Вашем сервере настройки mysql могут находиться или в /etc/my.cnf, или в /etc/mysql/my.cnf, в крайнем случае используйте команду locate, find или им подобные с заданным именем файла

Как изменить настройки mysql?

Итак, файл найден, открыть его можно непосредственно через mc (midnight commander) + F4 или же используя VI(vim): vi my.cnf.

В случае с mc перед Вами будет старый добрый «Norton Commander», если же Вы не знаете, как пользоваться vi, Вам поможет man vi

Когда требуется настройка mysql? Анализ нагрузки mysql

Подсоединитесь с правами администратора базы данных к консоли mysql или же выполните запрос любым удобным для Вас способом, например через phpmyadmin, запрос:

Все запросы к mysql для проверки значения (мониторинга) тех или иных параметров необходимо выполнять из под пользователя с правами администратора Вашего mysql сервера.

Итак, если после выполнения этого запроса Вы видите огромную очередь, то уже есть над чем задуматься. Если в очереди находится больше нескольких сотен запросов, точно требуется тонкая настройка mysql.

А также большое значение в колонке Time во времени выполнения этих запросов указывает на возникновение «медленных» запросов. Также показателем к оптимизации mysql может быть вывод команды top, выполненный через linux консоль.

Вводим в консоли Top, после чего на английской раскладке нажимаем «О», зажимаем «shift» и нажимаем «K» до тех пор, пока %CPU не окажется вначале списка. Зажимаем «shift» и «N» и двигаем в начало списка %MEM. После чего нажимаем «Enter».

Если во главе списка у Вас оказывается «mysql» и показатели в столбце %CPU и %MEM довольно существенны (под 100% загрузка на процессор и почти полностью используется память), Вам точно необходима оптимизация mysql.

Тонкая настройка mysql. Кэширование средствами mysql

Перейдем к тюнингу mysql. Откройте файл my.cnf. Найдите раздел mysqld, все последующие переменные мы будем размещать именно в этом разделе, после строки:

Настраиваем кэш MYSQL

Внутренний кэш запросов mysql:

Query_cache_limit – «ограничиться» максимальным размером данных, которые можно поместить в кэш. Скажу Вам по опыту, в очень редких ситуациях «mysql» запросы будут возвращать данные размером больше 10 MB. Обычно и размера в 2-6 MB хватит с головой.

Например, укажите в my.cnf:

Query_cache_size – здесь Вы можете указать, сколько памяти выделить для внутреннего кэша запросов «mysql». В кэш будет добавляться результат запроса целиком («таблица», полученная в результате запроса).

Например, укажите в my.cnf:

Выбор значения query_cache_size

Совет первый: не указывайте слишком большое значение query_cache_size. Обычно указывается значение, равное одной десятой, одной пятой от размера доступной физической оперативной памяти.

Совет второй: указание также большого значения может существенно снизить эффективность использования кэша при частом обращении к нему при поиске данных. Тем более, если максимальный размер данных для помещения в кэш ограничен слишком «малым» значением query_cache_limit: поиск среди блоков небольших фрагментированных данных становится гораздо медленнее при большем объеме используемой памяти.

Как оптимально подобрать значения для query_cache_size, query_cache_limit?

После настройки my.cnf и перезапуска mysql (обычно: /etc/init.d/mysql restart, /etc/rc.d/mysql restart).

Совет: впрочем, перезапускать mysql после изменения my.cnf нет надобности. Достаточно войти в консоль управления mysql с правами администратора или корневого пользователя root и выполнить запрос на изменение тех или иных переменных.

Например, для query_cache_size:

Какие mysql запросы не кэшируются (qcache_not_cached)?

  • insert, update запросы, по существу они приводят к очистки кэша таблицы, для которой выполняются;
  • запросы с применением пользовательских функций и процедур;
  • запросы, использующие временные таблицы;
  • запросы с включением локальных переменных;
  • запросы, использующие SELECT … FOR UPDATE, SELECT … INTO OUTFILE, SELECT … IN SHARE MODE, SELECT * FROM … WHERE autoincrement_col IS NULL, SELECT … INTO DUMPFILE;
  • запросы без обращения к таблицам;
  • запросы с включением некоторых недетерминированных функций: SLEEP(), NOW(),CURTIME(), LAST_INSERT_ID(), RAND();
  • в случае, если пользователь имеет права только на часть таблицы: некоторые ее колонки и т.п.
  • запросы с генерацией предупреждений (warnings).

Через сутки – другие зайдите в консоль управления mysql или выполните запрос любым, удобным для вас способом:

Здесь нас интересуют следующие переменные:

  • qcache_not_cached – количество запросов, не подлежащих кэшированию;
  • qcache_inserts – показывает количество результатов mysql запросов, добавляемых в кэш;
  • qcache_hits – показывает количество результатов mysql запросов, извлеченных из кэша, без реального обращения к базе данных;
  • qcache_free_memory – показывает свободную «доступную» память для кэширования;
  • qcache_lowmem_prunes – счетчик, который показывает, сколько раз mysql пришлось принудительно освободить память для добавления новых запросов в кэш mysql.

Эффективностью работы кэша является соотношение qcache_inserts к qcache_hits, которое показывает отношение результатов запросов помещенных в кеш, к результатам запросов, извлеченным из кеша.

Также «эффективность» работы кэширования можно рассчитать по формуле:

Qcache_hits / (Qcache_inserts + Qcache_not_cached)

Как узнать, что query_cache_size был выбран верно?

На это обычно указывает qcache_free_memory, отличный от нуля. При этом желательно, чтобы параметр qcache_lowmem_prunes стремился к 0. Если же qcache_lowmem_prunes очень велик, рекомендую увеличить query_cache_size.

Настраиваем многопоточность в mysql

Thread_concurrency – количество одновременных процессов, «обрабатывающих» конкурентные запросы к mysql. По документации советуют установить это значение, равное процессорам (ядрам) системы, умноженное на два.

Но и советуют обращать внимание на количество винчестеров, которое использует система, чтобы избежать излишней нагрузки на файловую систему. Тоесть, если Ваш сервер оснащен четырьмя Intel Xeon по 2.8 ГГЦ с hyper Threading, тогда Вам следует установить значение в my.cnf:

Как понять, что значение thread_concurrency установлено верно?

Во время большой нагрузки на сервер после изменения параметра thread_concurrency (наплыва посетителей или при помощи эмуляции нагрузки (например, при помощи Apache Bench с другого сервера)) понаблюдайте за количеством свободной оперативной памяти при помощи той же команды top. Кроме этого обратите внимание на параметр в строке Cpu(s): %wa.

Если значение этого параметра после изменения thread_concurrencyвыросло, и дошло до 60-90%, советую Вам снизить количество thread_concurrency. Обычно высокое значение %wa свидетельствует о возрастающей нагрузке на файловую подсистему (винчестер).

thread_cache_size – число потоков, которые сервер будет держать в кэше открытыми для обслуживания новых подсоединений. Можно установить равным значению max_connections + 1 (максимально возможному количеству соединений с б.д. +1). Но, чтобы достигнуть максимальной производительности, потребуется мониторинг переменной max_used_connections во время длительного промежутка времени (см. далее).

Т акже советую Вам просмотреть логии Mysql: обычно /var/log/mysql.log на предмет too many connections, когда mysql сервер отвергает подсоединение к базе данных из за того, что было достигнуто максимальное количество разрешенных подсоединений.

Например, при помощи команды grep, выполненной из ssh консоли linux:

Совет: путь к логу mysql Вы сможете найти в файле my.cnf.

Если Вы нашли несколько строк с подобной ошибкой, тогда советую Вам увеличить значение max_connections, thread_cache_size, back_log, thread_concurrency:

Например для max_connections, thread_cache_size укажите в my.cnf:

Как узнать текущее значение параметра MYSQL, если оно не указано в my.cnf?

Для этого в консоли mysql с правами администратора mysql можно выполнить запрос:

Например, текущее значение max_connections можно узнать так

Если Вы хотите вывести все переменные, содержащие в своем названии max, можно сформировать такой запрос в консоли mysql:

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

Как подобрать оптимальное значение thread_cache_size?

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

И постоянно отслеживайте переменную max_used_connections через определенные промежутки времени, ее значение. Если значение max_used_connections = 72, то устанавливаем значение thread_cache_size = 100 и выше (немногим больше max_used_connections).

Настраиваем «очередь» конкурентных запросов back_log на подсоединение к mysql серверу.


back_log – сколько запросов на подсоединение к mysql серверу может быть помещено в очередь и в последствии обслужено, если сервер в данный момент занят обработкой запроса на подключение к mysql. По умолчанию пять запросов на подключение будет поставлено в очередь на ожидание. Остальные будут игнорироваться. Если mysql работает под сильной нагрузкой, рекомендую увеличить значение этого параметра.

Количество одновременно открытых таблиц в mysql.

table_cache (с версии Mysql с 5.1.3 – table_open_cache) — количество открытых таблиц для всех потоков. Дело в том, что открытие таблиц – очень ресурсоемкий процесс, поэтому есть смысл «держать» определенное количество таблиц открытыми в кэше. Если у Вас на сервере используется большое количество таблиц одновременно, можно начать со значения в 1000:

Укажите в my.cnf:

Рекомендую через определенный промежуток времени выполнять в консоли mysql запрос с правами root пользователя или администратора mysql:

Opened_tables характеризует число таблиц, открытых в обход кэша, желательно, чтобы ее значение стремилось к 0.

Таблицы какого размера хранить в памяти?

max_heap_table_size — максимальный допустимый размер временной таблицы (типа MEMORY (HEAP)), хранящейся в памяти. При превышении этого раз мера таблица будет «создана» на жестком диске.

Например, укажите в my.cnf:

tmp_table_size — максимальный размер памяти для временных таблиц, создаваемых MySQL, которые «хранятся» в оперативной памяти. Если размер временной таблицы превышает указанный, тогда таблица будет «создана» на диске.

Попробуйте установить значение в my.cnf равным 32 – 128 МБ:

Понаблюдайте также за состоянием created_tmp_disk_tables, ее значение должно стремиться к 0.

Для этого нужно выполнить запрос в консоли mysql:

Если значение created_tmp_disk_tables гораздо больше нуля, попробуйте увеличить параметр tmp_table_size

Как создать крутой аватар с помощью Gravatar?

Аватар – лицо любого блоггера да и просто владельца аккаунта на форуме и пользователя Вконтакте. При этом поставить аватар в WordPress не так просто.

Настройка my.cnf для стабильной работы Mysql

Один из важных моментов в скорости работы сайта, это правильная оптимизация конфигурационного файла базы данных my.cnf, с которым многие сталкиваются в процессе оптимизации системных ресурсов. Зачастую многие приведенные в сети мануалы рассказывают о настройках которые были применены к слабым конфигурациям и это не дает нужного ответа.

Я обычно использую сервера на уровне ксеонов с 32 гигабайтами памяти, поэтому найти нужную конфигурацию настроек mysql достаточно трудно, отсюда и попытки настроить самому методом тыка и проб. Что из этого получилось сегодня я постараюсь рассказать.

В ТЕМУСТАТЬИ

Как в Mysql и MariaDB установить оптимальный параметр innodb_log_file_size

MyISAM против Innodb MySQL Engine для WordPress что лучше и конвертация таблиц базы данных

Исходные данные для настройки

Итак рассматриваем систему с установленным ISP manager на котором стоит Centos и MariaDB. Задача, оптимизировать работу Mysql и ускорить тем самым обработку запросов на сайтах. Для начала я приведу, пример своего my.cnf который находится по адресу etc/my.cnf, если у вас стоит Debian то смотреть надо в папке другой. Итак вот так выглядит настроенный файл, но иногда я все таки еще изменяю некоторые настройки, о которых расскажу ниже.

[mysqld]
#open_files_limit = 2000

local-infile=0
innodb_file_per_table = 1

p >
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
ignore-db-dir=lost+found
max_allowed_packet = 1024M
skip-external-locking
skip-name-resolve

myisam-recover = BACKUP
max_connections = 500
table-cache = 120000
table-open-cache = 120000

Тюнинг базы данных Mysql варианты

Итак что я меняю и что вижу при этом. Для начала выведу основные параметры которые считаю спорными в настройке.

key_buffer_size = 4Gsort_buffer_size = 1G

read_rnd_buffer_size = 2G
myisam-recover = BACKUP

Разбор параметров тюнинга Mysql

Разберёмся по порядку с каждым параметром настройки и вопросами которые есть при этом. Итак по пунктам.

key_buffer = 2Gkey_buffer_size = 4G
Так и не смог я понять, различаются ли эти два параметра или первый является устаревшим значением второго.

max_connections = 500 и thread-cache-size = 500
По замерам выходило, что не более 90 одновременных подключений, так и поставил 500 с запасом. Тут следует учесть что следующий параметр thread-cache-size должен быть одинаковым числом с максимальным соединением. Поэтому там также стоит 500.

table-cache = 120000 и table-open-cache = 120000
Здесь я поставил по 120000, так как таблиц у меня достаточно много, если у вас не много сайтов, то этот параметр можно не повышать.

interactive-timeout = 360
Установил в 360, чтобы снимались запросы, которые находятся без активности 6 минут или 360 секунд.

query_cache_limit = 12Mquery_cache_size = 4Gjoin_buffer_size = 512M
Следующие три параметра настроил исходя из следующих наблюдений. Пробовал ставить query_cache_size от 2 до 6 гигабайт, в итоге оптимально показалось 4. Обработка запросов до 12 мегабайт мне вполне хватало, поэтому оставил 12. Но есть такое мнение, что большой query_cache_size на самом деле сильно грузит систему и желательно держать кеш в memcashed, на практике я не заметил особо, чтобы он забирал мощность, а вот при проверке кеша, обнаружил, что много запросов проходит через него.

sort_buffer_size = 1Gread_buffer_size = 1Gread_rnd_buffer_size = 2G
Буфера поставил побольше, так как несколько баз имеют большой размер, хотя есть риск переполнения памяти, тем не менее они настолько не забивали память.

Оптимизация сервера MySQL с помощью утилиты MySQL Tuner

Оптимизация сервера MySQL с помощью специальной утилиты mysqltuner.

Илон Маск рекомендует:  Что такое код imagesetstyle

После установки MySQL на выделенный сервер, базовый файл конфигурации находится в /etc/my.cnf .
В такой конфигурации работать сервер будет, но про оптимальную работу говорить не буду.

Сперва потребуется конфигурационный файл my.cnf , более подходящий для нашего сервера.

По умолчанию примеры расположены в директории /usr/share/mysql .

Выбираем конфигурационный файл исходя из наших потребностей:

my-small.cnf — для систем с объемом памяти менее 64Mb, где MySQL используется редко или в незначительной степени;

medium.cnf — под MySQL может выделяться до 64Мb памяти (для маломощных VDS/VPS);

my-large.cnf — для систем с оперативной памятью от 512Мb;

my-huge.cnf — для систем с оперативной памятью 1-2Gb;

Выбираем одну из наиболее подходящих нам конфигураций и переписываем её вместо текущей my.cnf .

Приступим к оптимизации с помощью утилиты MySQL Tuner

Скачиваем утилиту

Скрипт попросит имя и пароль MySQL администратора, после чего выведет результаты своей работы.
Вывод результатов работы утилиты примерно такой:

Очень важно обратить внимание на строку

Количество текущих соединений — 16, количество возможных соединений — 151. Параметр 151 — это параметр использующийся по умолчанию. Обычно этого значения маловато, именно из-за него появляются сообщения вида “Too many active connections”. Увеличим этот параметр до 300.
В секции [mysqld] в конфигурационном файле /etc/my.cnf

Еще одним, наиболее важным параметром увеличения производительности MySQL является key_buffer_size . Параметр определяет размер общего для всех пользовательских процессов буфера индексных блоков MyISAM таблиц. Обычно устанавливается в пределах 30-40% от общей выделенной под MySQL оперативной памяти.

Следует помнить, что рекомендации утилиты MySQL Tuner будут тем более оптимальны, чем дольше работает без перезагрузок сервер MySQL.

Рекомендации

1) Ставим MyISAM по умолчанию и отключаем ненужные нам вещи:

2) Привязываем базу для использования только на нашем сервере:

3) Выставляем необходимые максимальные ограничения:

4) Устанавливаем общий буфер, кэш для запросов и максимальный размер для временных таблиц:

5) Максимальное число соединений к базе и ожидающих их процессов:

6) Буферы на каждый процесс (большие значения типа 1Mb и выше для нас это явно перебор).

7) Служебный сортировочный буфер (память постоянно не занимает) и кэш открытых таблиц.

8) Необходимые таймауты, чтобы отсекать долгие ожидания.

9) Установка кодировки UTF-8:

10) По-желанию можно добавить логи медленных запросов или неиспользуемых индексов
(создайте доступным на запись файл для лога).

Обратите внимание на “1.7M per thread (151 max threads)”. Увеличив количество max_connections в 3 раза, сильно увеличится использование оперативной памяти. Поэтому не стоит ставить max_connections про запас. Посмотрите свои текущие метрики, сколько соединений бывает в пике, прибавьте к этому 10-20%.

Установка и первоначальная настройка MySQL в linux

Установка MySQL из репозитория

Установка сервера MySQL из репозитория

Для установки сервера MySQL в Debian достаточно набрать команду:
apt-get install mysql-server

В операционной системе RHEL / CentOS также все довольно просто:
yum install mysql-server

При этом будет установлена актуальная (на момент выполнения команды) версия MySQL. На момент написания статьи это версия 5.5.

Обратите внимание: после установки сервера MySQL его необходимо запустить. Для этого (как в Debian, так и в RHEL / CentOS) необходимо выполнить команду:
service mysqld start

Кроме того, рекомендуем перезагрузить сервер и убедиться, что MySQL запускается при загрузке. Если не запускается, то в CentOS выполните команду:
chkconfig mysqld on

Установка клиента MySQL из репозитория

Для установки клиента mysql запустите в debian следующую команду:
apt-get install mysql-client

В случае, если у Вас установлен RHEL / CentOS, выполните такую команду:
yum install mysql

При этом будет установлена актуальная (на момент выполнения команды) версия MySQL. На момент написания статьи это версия 5.5.

Установка библиотек MySQL для поддержки компиляции (MySQL development) из репозитория

Если Вы устанавливаете MySQL не по своему желанию, а потому, что это необходимо для установки какой-либо программы (например, asterisk, поддержка cdr_mysql), то просто установить сервер (и/или клиент) MySQL недостаточно. Необходимо также поставить библиотеки MySQL, чтобы компиляция зависящей от MySQL программы была успешной.

Для debian это будет команда:
apt-get install libmysqlclient-dev

Для RHEL / CentOS выполните:
yum install mysql-devel

Первоначальная настройка MySQL

Даже в случае, если Вы устанавливаете MySQL на домашнем/тестовом компьютере (не говоря уже об установке в производственной среде) необходимо совершить хотя бы минимальные действия по настройке MySQL сервера (клиента, как правило, настраивать не нужно). Например, задать пароль пользователя root в системе MySQL. По умолчанию пароль для root — пустой (без пароля).

Задать пароль MySQL root

Для простой установки пароля пользователю root (в случае, если пароль не был запрошен при установке самого MySQL) выполните команду:
/usr/bin/mysqladmin -u root password ‘rootpass’

Где rootpass — пароль для пользователя root. Совет: если Вы хотите, чтобы эта команда не отображалась в истории команд (и никто впоследствии не смог бы подсмотреть пароль рута из истории команд), перед этой командой просто поставьте пробел. То есть:
/usr/bin/mysqladmin -u root password ‘rootpass’

Настройка MySQL для работы в производственной среде

Выполните из командной строки:
/usr/bin/mysql_secure_installation

Данный скрипт (если ответить на задаваемые вопросы yes) — установит новый пароль root (пароль будет запрошен), удалит пользователя anonymous, запретит логинится с удаленных машин под root-ом, удалит тестовую базу.

Создать необходимую базу данных и пользователя для нее

Для создания базы данных в MySQL необходимо сначала подключиться к MySQL, после чего выполнить mysql запрос для создания базы данных. Для этого выполните из командной строки linux:
mysql -u root -p

При этом будет запрошен пароль для пользователя, имя которого указано после опции -u (в данном случае — пароль пользователя root). При правильном введении пароля появится приглашение MySQL к вводу команд:
mysql>_

Это командная строка MySQL. Все SQL запросы и команды на создание баз данных, пользователей и т.д. вводятся в этой командной строке.

Для создания базы данных выполните в командной строке MySQL:
create database имя-базы-данных character set кодировка-базы-данных ;

например:
create database asterisk character set utf8;

Кодировку можно не указывать, при этом будет использоваться кодировка по умолчанию (см. настройки сервера MySQL):
create database mydatabase;

Теперь создадим пользователя MySQL и дадим ему полные права на созданную базу данных:
grant all privileges on имя-базы-данных .* to имя-пользователя @localhost identified by ‘ пароль-пользователя ‘;
например:
grant all privileges on asterisk.* to asterisk_user@localhost identified by ‘asterisk_password’;

Установка Mysql: пошаговая инструкция

Установка MySQL никогда не вызывает проблем как на платформе Windows, так и на всем семействе линуксоидов. На официальном сайте можно найти MySQL Installer, ответить на все его вопросы и моментально получить работающую систему управления базами данных.

Особенности установки MySQL

Варианты, при которых стандартный установщик сработает не так как нужно, ничтожно малы, но даже если они случаются можно попробовать установить другую версию, перепроверить файл my.ini и попросту разрешить доступ к порту 3306, что обычно является причиной проблем.

Использование MySQL в реальных проектах обязательно приведет к необходимости работы с командной строкой сервера, к решению административных задач:

  • пользователи;
  • базы данных;
  • скорость работы;
  • оптимизация запросов;
  • миграция данных и пр.

При создании крупных веб-проектов потребуется использование тонких настроек MySQL и управление ее функциями в полном объеме. Когда веб-сайт подойдет к планке высоконагруженного ресурса, понадобится корректировать и тестировать my.ini — конфигурацию системы управления данными.

В среде Windows нередки случаи, когда трудно или просто невозможно выполнить импорт базы данных удобными средствами (например, phpMyAdmin), но всегда все можно сделать командной строкой.

Если однажды установленный и прекрасно работавший сервер лег, то первая причина этой проблемы — настройки my.ini (my.cnf для линуксоидов).

Традиции и особенности операционных систем

Установка MySQL может быт выполнена на ином порту (стандартно — 3306), а следовательно, нет необходимости сносить то, что уже стоит.

«Магические» пакеты и репозитории в линуксоидах — гарантия непрерывной обновляемости при предельно четком движении к цели: ни при каких обстоятельствах система не должна поддаваться панике.

Возможность установки, обновления и удаления, вплоть до автоматического, любого софта в среде Windows при движении по направлению «мы знаем, что нужно пользователю, и всегда можем ему помочь».

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

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

Установка MySQL предваряется удалением предыдущей установки:

и установкой пакетов:

Удаление предыдущей версии производится из командной строки в режиме администратора. Не всегда доступно удалить предыдущую установку в разделе «Установка и удаление программ». Недостаточно просто остановить службу или почистить реестр.

Установка MySQL на Windows

Процесс не представляет проблем ни для профессионала, ни для новичка. Основное правило, которому следует доверять и следовать при установке: MySQL работает надежно и безукоризненно.

Вспомогательное правило: следует рассчитывать на установку из zip-архива и собственные силы. Использование лояльного и «самостоятельного» установщика MySQL — это только для знакомства с вопросом и процессом.

Только при установке посредством MySQL Installer будет возможность удалить продукт в разделе «Установка и удаление программ».

Установка Apache, MySQL, PHP на Windows — «веками» отработанный процесс. Все всегда работает стабильно, надежно, эффективно. Если что-то идет не так, значит, есть ошибка в файлах конфигурации или инициализации, незаслуженно забыт файл hosts, работает конфликтующее приложение, есть проблемы от предыдущей установки (служба, реестр).

Быстрый старт

Первый шаг: на официальном сайте скачать zip-архив нужной версии. Последняя на сегодня 5.7.21 и разархивировать ее.

Второй шаг: выбрать диск и папку, в которой будет находиться СУБД и ее базы данных. Лучше всего, когда установка Apache, MySQL и PHP выполняется в одном месте. Но это обстоятельство абсолютно не принципиально. Иное решение просто создаст трудности при исполнении реальных проектов. Доступ к папкам этих продуктов будет необходим время от времени и вспоминать, где что установлено — лишняя трата времени.

Третий шаг: написать файл «my.ini». Это очень важный файл, но для начала подойдет такой образец:

Это содержание файла позволяет запустить сервер без проблем. Если оставить указание только на папку MySQL и папке его данных, сервер также запустится, но стремится в начале установки планировать и проектировать my.ini не перспективно. Слишком много параметров, а понимать их использование без практики — не слишком перспективная идея.

Существенное обстоятельство: на просторах интернета можно найти тонну образцов my.ini. Важно смотреть на дату предлагаемого варианта. Мир так быстро меняется, что старые варианты важных файлов не всегда соответствуют свежим версиям программ.

Уточнение положения MySQL и установка

После того как zip-архив будет разархивирован, его следует дополнить папками:

Имена этих папок могут быть любыми, но пакет к инсталляции должен быть укомплектован указанием на место для импорта/экспорта файлов, местом для журнала, местом для временных файлов и папкой, где будут размещаться базы данных MySQL.

После того как все будет готово, следует запустить командную строку в режиме администратора и выполнить всего две команды. Следует обратить внимание: команды исполняются в папке bin пакета MySQL, в том месте куда он помещен.

Процедура не занимает много времени, но после завершения операции «mysqld —console» командная строка «висит». Следует запустить вторую командную строку в режиме администратора, чтобы установить пароль пользователя — root.

Временный пароль создается и выводится на экран при первой команде. Следует его записать, чтобы не повторять процесс еще раз. В данном примере временный пароль был oRJiT%Im5eBA.

После этих трех команд сервер «стал», но не готов к работе: MySQL — появился в списке служб. Нужно установить пароль для root, добавить пару администраторов и перезагрузить компьютер.

Финальная стадия установки

Установка MySQL завершена, для создания пароля root вновь запускается командная строка в режиме администратора (2).

Во втором окне вводится команда: mysql -u root -p. Здесь вызывается сервер, а не его демон. Будет предложено ввести пароль: нужно ввести ту временную строку, что была выдана ранее. В данном случае: oRJiT%Im5eBA.

Единственная первая и правильная команда — установка пароля для root:

  • ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘sc’;

Вместо ‘sc’ — следует написать желаемый пароль с учетом требований безопасности, то есть не два простых символа, а что-то более-менее сложное. Следует обязательно написать в конце команды символ «;» — это команда! Этот символ обязателен.

В скриншоте показано добавление еще двух администраторов и передача им полных прав управления установленной системой MySQL.

На этом процедура завершена, она не сложнее, чем установка MySQL на Ubuntu, CentOS, FreeBSD или другой вариант линуксоида. Следует отметить: вариант установки под Windows — это простое использование мощного инструментального средства для создания и использования баз данных.

Качество, проверенное временем

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

Установка Apache, MySQL и PHP на локальный компьютер — это своего рода квалификационный признак разработчика (программиста). Умение ставить LAMP и ориентироваться во всех параметрах конфигурационных файлов очень важно.

Отличное программирование на PHP не реально без уверенных знаний самого языка, системы управления базами данных MySQL и Apache. А знание «httpd.conf», «php.ini» и «my.ini» важно и существенно влияет на скорость, качество и надежность разработки.

Установка MySQL в связке с Apache и PHP — хорошая практика, его настройка на оптимальный режим работы — востребованное знание и умение.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL