Сервер базы данных является критически важным компонентом сетевой инфраструктуры, необходимой для современных приложений. Не имея возможности хранения, извлечения, обновления и удаления данных (при необходимости), полезность и объем веб-и настольных приложений становится очень ограниченным.
Кроме того, зная, как устанавливать, управлять и настраивать сервер базы данных (так чтобы он работал, как ожидалось) является одним из важнейших навыков, и каждый системный администратор должен это знать.
В этой статье мы кратко рассмотрим, как установить сервер базы данных MariaDB, и затем мы расскажем, как настроить его.
Установка и обеспечение безопасности сервера MariaDB
В CentOS 7.x , MariaDB заменен на MySQL, который до сих пор можно найти в Ubuntu (наряду с MariaDB). То же самое верно и для OpenSUSE .
Это означает , что на стороне клиента команды одинаковы на обоих MySQL и MariaDB и конфигурационные файлы названы и расположены в одних и тех же местах.
Чтобы установить MariaDB, сделайте следующее:
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- yum update && yum install mariadb mariadb-server # CentOS --------------- On Debian and Ubuntu --------------- $ sudo aptitude update && sudo aptitude install mariadb-client mariadb-server --------------- On openSUSE --------------- zypper update && zypper install mariadb mariadb-tools # openSUSE
Обратите внимание, что в Ubuntu, вам будет предложено ввести пароль для РСУБД пользователя root.
После того, как были установлены вышеуказанные пакеты, убедитесь, что служба базы данных запущена и активирована для запуска при загрузке (в CentOS и OpenSUSE вам нужно будет выполнить эту операцию вручную, в то время как в Ubuntu процесс установки уже позаботились об этом для вас):
--------------- On CentOS/RHEL 7 and Fedora 23 --------------- systemctl start mariadb && systemctl enable mariadb --------------- On openSUSE --------------- systemctl start mysql && systemctl enable mysql
Затем запустите скрипт mysql_secure_installation
. Этот процесс позволит вам:
- Установить / сбросить пароль для РСУБД пользователя root
- Удалить анонимные логины (что позволяет только пользователям с допустимой учетной записью, чтобы войти в РСУБД)
- Отключить доступ root для целей, отличных от машин локального хоста
- Удалить тестовую базу данных (к который любой желающий может получить доступ)
- Активировать изменения, связанные с 1 по 4.
Для более подробного описания этого процесса, вы можете обратиться к разделу установки в посте Установка MariaDB базы данных в RHEL / CentOS / Fedora и Debian / Ubuntu.
Настройка сервера MariaDB
Параметры конфигурации по умолчанию считываются из следующих файлов в заданном порядке: /etc/mysql/my.cnf
, /etc/my.cnf
, и ~/.my.cnf
.
Чаще всего существует только /etc/my.cnf
. Именно в этом файле, в который мы установим общесерверных настройки (которые могут быть переопределены с теми же настройками ~/.my.cnf
для каждого пользователя).
Первое, что нам необходимо отметить о my.cnf
, что параметры разбиты на категории (или группы), где каждое название категории, заключенное в квадратные скобки.
Системные конфигурации сервера приведены в разделе [mysqld]
, где, как правило, вы найдете только первые два параметра в приведенной ниже таблице. Остальные другие часто используемые параметры (если не указано иное, мы изменим значение по умолчанию на пользовательское значение по нашему выбору):
Установка и описание | Значение по умолчанию |
datadir это каталог , где сохраняются файлы данных. | datadir=/var/lib/mysql |
socket указывает имя и местоположение файла сокета, который используется для локальных клиентских подключений. Имейте в виду, что файл сокета является ресурсом, который используется для передачи информации между приложениями. | socket=/var/lib/mysql/mysql.sock |
bind_address это адрес, по которому сервер базы данных будет прослушивать соединения по TCP / IP. Если вам нужен сервер для прослушивания на более чем один IP-адрес, оставьте эту настройку (0.0.0.0, который означает, что он будет прослушивать все IP-адреса, присвоенные этому конкретному хозяину). Мы изменим эту функцию, чтобы поручить обслуживание слушать только на его основной адрес (192.168.0.13):
bind_address = 192.168.0.13 |
bind_address=0.0.0.0 |
port представляет собой порт, на котором сервер базы данных будет прослушивать. Мы заменим значение по умолчанию (3306) с 20500 (но нам нужно убедиться, что ничего не использует этот порт):
port = 20500 В то время как некоторые люди утверждают, что безопасность через неизвестность не является хорошей практикой, изменение портов приложений по умолчанию для более высоких является рудиментарным -Дополнительное эффективно – метод, чтобы препятствовать сканирования портов. |
port=3306 |
innodb_buffer_pool_size является буферный пул (в байтах) памяти, которая выделяется для данных и индексов, которые доступны часто при использовании Innodb (который по умолчанию в MariaDB) или XtraDB в качестве механизма хранения. Мы заменим значение по умолчанию 256 МБ:
innodb_buffer_pool_size = 256M |
innodb_buffer_pool_size = 134217728 |
skip_name_resolve указывает на то, будет ли разрешены или нет имена хостов для входящих соединений. Если установлено значение 1, как мы будем делать в данном руководстве, т.е. только IP-адреса. Если вам не требуется имя хоста для определения разрешений, рекомендуется отключить эту переменную (для того, чтобы повысить скорость соединения и запросы), установив его значение на 1:
skip_name_resolve = 1 |
skip_name_resolve=0 |
query_cache_size представляет размер (в байтах), доступной для кэша запросов на диске, где результаты запросов SELECT, сохраняются для дальнейшего использования при выполнении идентичных запросов (к той же базе данных и используя тот же протокол и тот же набор символов). Вы должны выбрать размер кэша запросов, который соответствует вашим потребностям на основе 1) число повторных запросов, и 2) приблизительное количество записей, где повторяются эти запросы, как ожидается, чтобы вернуться. Мы установим это значение до 100 МБ на данный момент:
query_cache_size = 100M |
query_cache_size=0 (which means it is disabled by default) |
max_connections максимальное количество одновременных клиентских подключений к серверу. Мы установим это значение до 30:
max_connections = 30 Если соединение будет использовать нить, и ,таким образом, будет потреблять память. Примите во внимание этот факт при установке max_connections. |
max_connections=151 |
thread_cache_size указывает количество потоков, которые сервер выделяет для повторного использования после отключения клиента и высвобождает нить(и) ранее использованные. В этой ситуации, это дешевле (с точки зрения производительности), чтобы повторно использовать нить, чем добавлять новую. Опять же, это зависит от количества соединений, которое вы ожидаете. Мы можем с уверенностью установить это значение на половину числа max_connections:
thread_cache_size = 15 |
thread_cache_size=0 (disabled by default) |
В CentOS , нам нужно будет сообщить SELinux, чтобы позволить MariaDB слушать на нестандартном порту ( 20500 ) до перезапуска службы:
yum install policycoreutils-python semanage port -a -t mysqld_port_t -p tcp 20500
Затем перезапустить службу MariaDB.
Настройка производительности MariaDB
Чтобы помочь нам в проверке и настройке конфигурации в соответствии с нашими конкретными потребностями, мы можем установить mysqltuner (скрипт , который будет предоставлять предложения по улучшению работы нашего сервера баз данных и повышения ее устойчивости):
wget https://github.com/major/MySQLTuner-perl/tarball/master tar xzf master
Затем измените каталог в папку, извлеченной из архива (точная версия может отличаться в вашем случае):
cd major-MySQLTuner-perl-7dabf27
и запустите его (вам будет предложено ввести данные учетной записи администратора MariaDB)
./mysqltuner.pl
Выход сценария само по себе очень интересен, но давайте переходить к нижней части, где переменные для настройки перечислены с рекомендуемого значения:
Параметр query_cache_type
указывает на то, отключен ли кэш запросов (0) или включен (1) . В этом случае mysqltuner советует нам, чтобы отключить его.
Так почему же мы советуем отключить его сейчас? Причина заключается в том, что кэш запросов полезен в основном в сценариях высоких чтения / записи с низким уровнем (который не наш случай, так как мы только что установили сервер базы данных).
ВНИМАНИЕ : Перед внесением изменений в конфигурацию производительности сервера, настоятельно рекомендуется проконсультироваться с экспертом администратора базы данных, чтобы гарантировать, что рекомендация дается mysqltuner не скажется негативно на существующей обстановке.
Резюме
В этой статье мы объяснили , как настроить сервер базы данных MariaDB после того, как мы установили , и закрепили ее. Переменные конфигурации, перечисленные в таблице выше, являются лишь несколькими параметрами, которые вы можете рассмотреть при подготовке сервера для использования или при настройке его позже. Всегда обращайтесь к официальной документации MariaDB перед внесением изменений или обратитесь к нашим советам по настройки производительности MariaDB:
Не пропустите: 15 Полезных настроек производительности и советы по оптимизации в MariaDB
Как всегда, не стесняйтесь, дайте нам знать, если у вас есть какие-либо вопросы или замечания по поводу этой статьи. Существуют ли какие-либо другие параметры сервера, которые вы хотите использовать? Не стесняйтесь делиться с остальными, используя форму комментария ниже.