Записи помеченные ‘MySQL’

MySQL не может сделать open_files_limit более 1024

CentOS 7, MariaDB 10. Было необходимо увеличить open_files_limit до 15000.
В /etc/my.cnf :
open_files_limit = 15000
но после перезагрузки сервиса значение осталось на уровне 1024. В логах обнаружилась запись:
[Warning] Could not increase number of max_open_files to more than 1024

Решение:
Необходимо увеличить директиву LimitNOFILE демона systemd для сервиса mariadb.service. Для этого достаточно прописать в файле /usr/lib/systemd/system/mariadb.service внутри секции [service] строку:
LimitNOFILE=15000
Но, так делать не рекомендуется, поскольку изменения могут быть затёрты при обновлении пакетов. Как этого избежать, описано в этом же файле. Поэтому мы так и поступим. Создаём директорию /etc/systemd/system/mariadb.service.d , а внутри неё файл limits.conf , в который впишем 2 строки:
[Service]
LimitNOFILE=15000

перезагружаем сервисы:
systemctl daemon-reload
systemctl restart mariadb.service

проверяем:
mysql -e 'show variables like "open_files%"'
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| open_files_limit | 15000 |
+------------------+--------+

Замена MySQL и установка MariaDB в CentOS 6

MariaDB — это СУБД, бинарно совместимая с MySQL, имеющая ряд улучшений и оптимизаций в коде, которые влияют на производительность баз данных в целом.
Рассмотрим замену MySQL на MariaDB в ОС CentOS 6.

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

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

# yum remove mysql*

Перед установкой MariaDB нам понадобится пакет совместимости из репозитория Remi.

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Устанавливаем:

# yum --enablerepo=remi-test --disablerepo=remi install compat-mysql55

Если этого не сделать, то вы скорее всего получите ошибку при запуске php-fpm. В таком случае вам следует удалить все пакеты mysql:

# yum remove mysql-server mysql-libs mysql-devel mysql*

и установить пакет совместимости из репозитория remi.
Для установки MariaDB создадим файл /etc/yum.repos.d/MariaDB.repo со следующим содержимым:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Замените centos6-amd64 на centos6-x86 в случае, если вы используете 32-разрядную версию ОС.
Наконец, устанавливаем клиент и сервер СУБД:

# yum install MariaDB-server MariaDB-client

Стартуем сервис:

# service mysql start

Добавляем его в автозагрузку:

# chkconfig mysql on

Так же как и после установки MySQL, делаем первоначальную установку root-пароля, удаление тестовой базы, анонимных пользователей, и удалённого доступа root:

# mysql_secure_installation

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

# service mysql restart

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

# mysql -uroot -p

после ввода пароля root видим следующее:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 131
Server version: 5.5.30-MariaDB-log MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Вот и всё: ваш сервер теперь работает на MariaDB.