avalon / инструкция по настройке MySQL
MySQL используется в качестве хранилища данных по умолчанию до версии 1.0rc2 включительно. Начиная с версии 1.0rc3 (r331) хранилищем по умолчанию является SQLite. Установку MySQL можно произвести как из репозитория (для пакетных дистрибутивов), так и загрузить с сайта разработчика.
Обычно все настройки MySQL хранятся в конфигурационном файле /etc/my.cnf. Описание настроек системных переменных можно найти в документации. Далее будут даны только общие рекомендации.
Максимальный размер пакета в конфиге обычно установлен в значение 2M. Практика показала, что данного значения не всегда хватает для работы. Рекомендуется изменить данную настройку, установив больший размер пакета. Например:
[mysqld] max_allowed_packet = 10M
Avalon хранит данные в таблицах типа InnoDB в кодировке UTF-8. Если нет других ограничений (нет других баз, работающих под управлением данного MySQL сервера, или вы производите его установку и настройку впервые), то имеет смысл установить кодировку сервера по умолчанию в UTF-8:
[mysqld] character_set_server = utf8 collation_server = utf8_unicode_ci
Про разницу между utf8_unicode_ci и utf8_general_ci можно прочитать в документации. Если коротко, то utf8_general_ci более быстрый, но менее точный в сравненях.
Так же, имеет смысл увеличить размер пула для InnoDB:
[mysqld] innodb_buffer_pool_size = 32M innodb_additional_mem_pool_size = 16M
и включить кэш запросов:
[mysqld] query_cache_type = 1 query_cache_size = 16M
Данных рекоммендаций, в теории, хватит для нормальной работы с базой сообщений размером в 3-4GB.
Если сервер MySQL работает на том же хосте, где предполагается использовать avalon и не используется для других целей, то, возможно, не имеет смысла заниматься настройкой прав доступа (хотя это и не правильно). В противном же случае, для добавления пользователя необходимо зайти в консоль MySQL:
$ mysql -u root -p
и выполнить запрос вида:
GRANT SELECT, INSERT, UPDATE, DELETE ON <имя_базы>.* TO <имя_пользователя>@<хост> IDENTIFIED BY '<пароль>' WITH GRANT OPTION; FLUSH PRIVILEGES;
где:
- имя базы - предполагаемое имя базы (`avalon` по умолчанию);
- имя пользователя - логин, с которым пользователь будет авторизоваться на MySQL;
- хост - имя или ip адрес хоста, с которого разрешено заходить пользователю с логином выше;
- пароль - пароль пользователя;
Например, если сервер находится на том же хосте, где предполагается пользоваться avalon, то для пользователя vasya с паролем 12345 этот запрос будет выглядеть следующим образом:
GRANT SELECT, INSERT, UPDATE, DELETE ON `avalon`.* TO vasya@localhost IDENTIFIED BY '12345' WITH GRANT OPTION; FLUSH PRIVILEGES;
