Установка сервера БД MySQL

30 Dec 2009 | Автор: dd |

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

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

1. Первый вид, наиболее простой и незатратный. Мы просто скачиваем с офф.сайта полностью откомпилированный сервак и распаковываем его у себя на сервере. Откровенно говоря я больше предпочитаю этот вариант поскольку он наиболее быстрый и надежный, тем более думаю что инженеры Sun однозначно не хуже меня соберут необходимый продукт. Тем более что этот способ позволяет получить наиболее актуальную версию продукта, более свежую, чем будет установлена, например, из портов. Единственно что, он устанавливается в максимальной комплектации и идет с подключением всех возможных модулей.

# wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.41-freebsd7.0-i386.tar.gz/from/http://www.mirrorservice.org/sites/ftp.mysql.com/
# tar -xzvf mysql-5.1.41-freebsd7.0-i386.tar.gz
# mv ./mysql-5.1.41-freebsd7.0-i386 /usr/local/mysql

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

# cd /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql/*
# scripts/mysql_install_db –user=mysql
# chown -R root .
# chown -R mysql data

Прописываем скрипт запуска сервера
# cp support-files/mysql.server /usr/local/etc/rc.d/

2. Этот способ lyssara-style, т.е. установка из портов. Выбираем версию сервера 5.1, на данный момент актуальной является версия 5.1.41

# cd /usr/ports/databases/mysql51-server/
# make && make install && make clean

##### Используемые по умолчанию параметры установки #####
WITH_CHARSET=charset    Define the primary built-in charset (latin1).
WITH_XCHARSET=list      Define other built-in charsets (may be ‘all’).
WITH_COLLATION=collate  Define default collation (latin1_swedish_ci).
WITH_OPENSSL=yes        Enable secure connections.
WITH_LINUXTHREADS=yes   Use the linuxthreads pthread library.
WITH_PROC_SCOPE_PTH=yes Use process scope threads
(try it if you use libpthread).
BUILD_OPTIMIZED=yes     Enable compiler optimizations
(use it if you need speed).
BUILD_STATIC=yes        Build a static version of mysqld.
(use it if you need even more speed).
WITHOUT_THR_ALARM=yes   Disable signals (this reduces kernel lock
contention on SMP, but has the side effect
that you can’t kill clients that are sleeping).
WITHOUT_INNODB=yes      Disable support for InnoDB table handler.
WITH_ARCHIVE=yes        Enable support for Archive Storage Engine.
WITH_CSV=yes            Enable support for CSV Storage Engine.
WITH_FEDERATED=yes      Enable support for Federated Storage Engine.
WITH_NDB=yes            Enable support for NDB Cluster.
#####################################################
Смотрим файл Makefile и выбираем те параметры что интересуют нас и записываем их в /etc/make.conf  У меня получилось следующее:
###########

.if ${.CURDIR} == ${PORTSDIR}/databases/mysql51-server
WITH_CHARSET=utf8
WITH_XCHARSET=all
WITH_COLLATION=uft8_bin
WITH_LINUXTHREADS=yes
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
WITHOUT_INNODB=no
.endif
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql54-client
WITH_CHARSET=utf8
WITH_COLLATION=utf8_bin
BUILD_OPTIMIZED=yes
.endif

###########
Копируем скрипт загрузки в rc.d
# cp /usr/local/share/mysql/mysql.server /usr/local/etc/rc.d/

3. И наконец последний. Из все предыдущих он наиболее родной для юникса, но при этом наиболее заковыристый. Но ведь настоящие программеры пишут в блокноте ;) Итак скачиваем сырцы и устанавливаем в систему. Этот способ наиболее гибкий, т.к. можно варьировать всевозможные конфигурации, как и в случае с портами, но сырцы реже попадаются кривыми, нежели порты.

# tar -xzvf mysql-5.1.41.tar.gz
# cd mysql-5.1.41
Смотрим доступные для установки опции
# ./configure –help
Создаем шаманскую фразу призывающую демона MySQL снизойти на наш сервер
# ./configure –prefix=/usr/local/mysql –localstatedir=/usr/local/mysql/data –with-mysqld-user=mysql –with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock –with-charset=utf8 –with-extra-charsets=all –with-error-inject
# make && make install && make clean
# sh scripts/mysql_install_db

Теперь после того как мы поставили MySQL всеми этими различными способами, переходим к правке конфиг файла
# vi /usr/local/etc/my.cnf
####### Подробные описания параметров на офф.сайте MySQL

# Раздел настроек клиента MySQL
[client]
# Указываем сокет сервера, к которому следует обращаться.
# Можно также указать порт, на котором будет крутиться сервер,
# но поскольку мы планируем использовать сервер MySQL
# для локальных баз, то закомментируем эту директиву

# port = 3306
socket = /tmp/mysql.sock
# Указываем пароль для подключения к БД, если используем
# password = your_password

# Настройки сервера MySQL
[mysqld]
# Расположение баз данных MySQL
datadir=/usr/local/mysql/base
# Расположение сокета
socket=/tmp/mysql.sock
# Пользователь от которого запускается демон MySQL
user=mysql
# Адрес и порт на которых демон слушает обращения (для локальной базы
# оставляем 127.0.0.1 или не используем вовсе)

bind-address = 127.0.0.1
# port = 3306
# Размер блока для таблиц типа MyISAM- тот буфер памяти
# который система использует для индексирования. Максимальный размер
# на 32-битных платформах 4Gb. Обычно задают порядка
# 25% размера оперативной памяти.
key_buffer_size=50M
# Максимальный размер пакета. Изначально размер пакета
# задается параметром net_buffer_length, но в случае необходимости
# может возрасти до max_allowed_packet.
# Этот параметр, по умолчанию, задается небольшого значения,
# для отлова больших (предположительно ошибочных) пакетов.

max_allowed_packet = 1M
# Количество максимальных разрешенных клиентских сессий.
# По умолчанию этот параметр равен 100

max_connections=300
# Увеличение этого параметра увеличивает количество
# дискриптеров необходимых для mysqld.
# Выяснить необходимость увеличения табличного кэша,
# можно путем проверки статуса Opened_tables

table_cache = 4
# Каждому потоку, производящему операцию сортировки,
# выделяется буфер заданного размера. Увеличение этого параметра
# ускоряет выполнение операций ORDER BY и GROUP BY

sort_buffer_size = 1M
# Каждому потоку производящему операцию последовательного сканирования,
# выделяется буфер заданного (в байтах) размера,
# для каждой сканируемой таблицы.
# При множественных последовательных сканированиях, значение параметра
# имеет смысл увеличить, т.к. по умолчанию он равен 131072.

read_buffer_size = 1M
# При сортировке прочтенных строк происзводится операция ключевой сортировки,
# при которой строка считывается через заданный буфер,
# во избежании поиска на диске.
# Большое значение данного параметра способно значительно увеличить
# производительность операции ORDER BY.

read_rnd_buffer_size = 256K
# Каждый клиентский поток соотносится с буфером соединения и
# результирующим буфером. Оба они имеют размер заданный данным параметром,
# но при необходимости могут динамически увеличиваться,
# вплоть до величины заданной параметром max_allowed_packet.
# Каждый результирующий буфер сокращается до величины net_buffer_length
# после каждого SQL отчета.

net_buffer_length = 2K
# Этим параметром задается размер стека для каждого потока.
# Большое количество ограничений, обнаруживаемых тестом crash-me,
# зависит от значения этого параметра.
# Значения по умолчанию (192Kb) достаточно для нормальных операций.

thread_stack = 64K
# Не использовать системные блокировки
skip-locking
# Данный параметр, в режиме ON, используется для работы локальной БД,
# т.е. сервер MySQL не использует стек TCP/IP,
# а работает только через файл сокета.
# Данный параметр задается при конфигурации опцией
# –skip-networking
(как и все  доступные опции)
skip-networking
# Не резолвить доменные имена клиентов, и использовать только IP.
# Если используется этот параметр то поле Host в таблице
# разрешений (grant table) должно содержать только IP адреса или localhost

skip-name-resolve
# Отключение поддержки BDB (Berkeley DB), в том случае если нет
# необходимости поддержки BDB таблиц. Этот параметр позволяет сэкономить
# память и тем самым ускорить выполение некоторых операций.

skip-bdb
# Путь хранения лог файла (у пользователя mysql должны быть права на запись)
log-error=/var/log/mysql.errors

##########################################################

Вроде как все готово, можно запускать в плавание. Первый запуск осуществим командой:
# bin/mysqld_safe –user=mysql &
Дальнейшие манипуляции с сервером MySQL будем производить посредством запускающего скрипта
# /usr/local/etc/rc.d/mysql-server [fast|force|one](start|stop|restart|rcvar|status|poll)
Смотрим- все ли у нас запустилось:
# ps -axj | grep mysql

И начинаем размышлять, что теперь к этому серверу мы можем прикрутить.

VN:F [1.9.21_1169]
Rating: 4.0/10 (1 vote cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)
Установка сервера БД MySQL, 4.0 out of 10 based on 1 rating

Теги: , , , , ,

Ваш отзыв