Windows веб-сервер (WAMP) — MySQL

Продолжаем разворачивать свой веб-сервер. Для работы с базами данных я рекомендую использовать форк MySQL — MariaDB.


Переходим на официальный сайт MariaDB ​и загружаем последнюю актуальную версию для Windows в формате MSI соответствующей разрядности операционной системы.

Следуя мастеру, выполняем установку сервера баз данных.

Особое внимание следует уделить расположению каталога баз данных. Как предполагалось в первой части, это C:\Server\MySQL\

Далее можно задать пароль root пользователя и кодировку по-умолчанию.

Остальные настройки следует оставить по умолчанию.

Готово! MySQL развернут и готов к работе. Вместе с сервером БД был установлен клиент для работы с базами — HeidiSQL. Можно его запустить и, создав новое соединение, подключиться к серверу баз данных.

Но сервер не настроен. Он может использоваться для простых сайтов, но базу в несколько десятков гигабайт, например Tecdoc, развернуть будет сложно, а порой — невозможно.

Для настройки открываем файл C:\Server\MySQL\data\my.ini и настраиваем под свою конфигурацию.

Секция mysqld

datadir = C:/Server/MySQL/data путь к файлам баз данных
port = 3306 порт, на котором работает сервер БД
sql_mode=»...» режим работы сервера БД
default_storage_engine=innodb движок таблиц по умолчанию
character-set-server=utf8 кодировка данных
bind-address = 0.0.0.0 слушать все интерфейсы
socket = C:/Server/MySQL/data/mysql.sock путь к сокет-файлу сервера
socket = C:/Server/MySQL/data/mysql.pid путь к pid-файлу процесса
skip-name-resolve не определять доменные имена для ip адресов
skip-log-bin не вести бинарный лог
skip-external-locking не использовать внешние блокировки
skip-slave-start не использовать репликацию
skip-relay-log не вести лог ретрансляции
skip-log-slave-updates не вести лог обновлений подчиненного сервера
low-priority-updates увеличить приоритет для операций select
lower_case_table_names = 1 отключить чувствительность к регистру в названиях
max_allowed_packet = 1024M максимальный размер пакета данных
max-connect-errors = 1000000 количество ошибок до блокировки хоста
sysdate-is-now = 1 синхронизировать текущее и системное время
query-cache-type = 0 не использовать кэширование запросов
query-cache-size = 0 не использовать кэширование запросов
open-files-limit = 65535 ограничение количества открытых файлов
thread_concurrency = 6 Количество ядер *2 + количество жестких дисков
innodb = FORCE включить InnoDB и не запускать сервер при ошибке
innodb_file_format = Barracuda использовать новейший формат файлов данных
innodb_file_per_table = 1 хранить таблицы в отдельных файлах
innodb_large_prefix = 1 увеличенный индекс для сжатых таблиц
innodb_use_trim=ON перераспределять место при сжатии таблиц
innodb_use_fallocate=ON предзагрузка файлов средствами ОС
innodb_use_atomic_writes = 1 использовать атомарные записи вместо буфера
innodb_flush_method = O_DIRECT верифицировать каждый сброс данных на диск
innodb_flush_log_at_trx_commit = 2 сбрасывать буфер транзакций в кэш ОС
innodb_log_files_in_group = 2 количество файлов в журнале транзакций
innodb_log_file_size = 512M размер файла журнала транзакций
innodb_buffer_pool_size = 2G 60-80% всей оперативной памяти
innodb_buffer_pool_instances = 2 1 единица на 1 Гб innodb_buffer_pool_size

Конечно приведённые выше настройки — далеко не все возможные. Кроме того, каждый сервер следует настраивать индивидуально. Но это — необходимы минимум для XtraDB.

После изменения настроек необходимо перейти в Службы и перезапустить MariaDB.

Вероятнее всего, у вас это не получится. Проблема в том, что мы изменили количество файлов и размер журнала транзакций. Для решения этой проблемы переходим в C:\Server\MySQL\data и удаляем файлы, содержащие log, bin, err или data в названии:

Еще одной возможной причиной может стать то, что ваша система не поддерживает innodb_use_atomic_writes, следует просто удалить этот параметр из конфигурации.

После успешного запуска MariaDB можно переходить к разворачиванию Apache.

Поделиться
Отправить
Запинить
Поделиться
Отправить
2018   mysql   server
1 комментарий
Рыскин

А как подключиться удаленно к базе на MariaDB? Например, базу установил на терминальный сервер, который имеет IP адрес для подключения пользователей, как мне удаленно подключиться к БД на порт 3306? Если подключаться к IP:3306, связи с базой нет. Если сайт находиться на VPS, а база на терминальном сервере, как их законектить между собой?

Auto-DB.pro

Возможно Вы не открыли порт фаервола, поэтому нет соединения.
Так же стоит проверить IP адреса, которые слушает сервер базы данных. Для MySQL это опция bind-address в настройках кнфигурации ( bind-address = 0.0.0.0 указывает на прослушивание всех адресов)

Популярное