Yandex Metrika
sanches.free

Администрирование MySQL для проекта на Битрикс: пользователи, базы и оценка размера

Зачем это в связке с 1С‑Битрикс

Ядро, инфоблоки и модуль интернет‑магазина опираются на одну установку СУБД. Администрирование на уровне пользователя MySQL, а не только «дайте root-пароль в .settings.php», снижает риски утечки данных между стендами и упрощает аудит перед сдачей проекта или миграцией.

После установки: mysql_secure_installation

Утилита предлагает задать пароль root, убрать анонимных пользователей, запретить удалённый вход root и удалить тестовую базу test. На продакшене это не заменяет firewall и отдельного административного канала, но убирает типовой «развёрнутый по умолчанию» след.

mysql_secure_installation

Кто может подключиться и как развести прод и тест

Список учётных записей (столбцы user и host) имеет смысл переснимать после каждого крупного обновления. Дальше — типовой шаблон: отдельные логины на схемы prod_% и test_%, чтобы ограничить «радиус» ошибки на интеграционном стенде.

-- кто есть в системе
SELECT user, host FROM mysql.user ORDER BY user, host;

-- развести доступ по префиксу имён баз (подставьте свои шаблоны)
CREATE USER 'app_prod'@'localhost' IDENTIFIED BY 'сложный_пароль_прод';
CREATE USER 'app_test'@'localhost' IDENTIFIED BY 'другой_пароль_тест';
GRANT ALL PRIVILEGES ON `prod_site_%`.* TO 'app_prod'@'localhost';
GRANT ALL PRIVILEGES ON `test_site_%`.* TO 'app_test'@'localhost';
FLUSH PRIVILEGES;

Учётная запись с host «%»

Вызов вида CREATE USER 'имя'@'%' IDENTIFIED BY '…' допускает вход с любого хоста, если сеть и bind-address это позволяют. Если такой аккаунт всё же нужен (редко!), выдавайте минимально достаточные привилегии — например только SELECT на одну схему для отчётности, без ALL PRIVILEGES.

Новая база и кодировка

Для современных инсталляций 1С‑Битрикс ориентир — utf8mb4 и сравнение вроде utf8mb4_unicode_ci, чтобы корректно хранить полный набор Unicode. Старые примеры с utf8 трёхбайтного «utf8» в MySQL оставляют проблемы с эмодзи и частью символов.

CREATE DATABASE `bitrix_new` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Размер схем по information_schema

Запрос суммирует данные и индексы по каждой базе — полезно перед чисткой логов, архивацией старых заказов или планированием диска под обмен с 1С.

SELECT table_schema AS db_name,
       ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS size_mb
FROM information_schema.tables
GROUP BY table_schema
ORDER BY size_mb DESC;

Итог

Минимальный набор: пройти mysql_secure_installation, не держать лишних пользователей, разделить права по средам, по возможности избегать широкого % без сетевой изоляции, создавать новые базы сразу в utf8mb4 и периодически смотреть фактический объём схем — это дешёвая страховка для долгоживущего каталога или портала на Битрикс.

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии