Skip to content

Конфигурирование хранилища (базы данных)

Sergey Shorokhov edited this page Jul 15, 2021 · 5 revisions

Выбор типа хранилища

Выбор производится посредством активирования нужного плагина в файле конфигурации.

Расположение файла конфигурации: amxmodx/configs/plugins-ChatAdditions.ini (подробнее)

SQLite

Хранилище SQLite хранит базу данных (далее БД) локально, на диске.

Файл БД будет создан автоматически на сервере по пути: amxmodx/data/sqlite3/ChatAdditions.sq3

Для использования этого типа хранилища нет необходимости в подключении к интернету, а так же нет необходимости в допонительном конфигурировании. Хранилище изначально полностью готово к работе.

Подойдёт для серверов, где нет потребности в внешнем управлении списком Gag'ов.

Управление списком Gag'ов производится из меню сервера или с помощью консольных команд, а так же, с помощью утилит, есть возможность редактировать на прямую файл sq3 (для опытных пользователей).

MySQL

Хранилища CSBans и GameCMS работают с MySQL, внешней БД.

Для использования данного хранилища потребуется настроить данные для соединения с внешней БД.

Расположение файла конфигурации для CSBans: amxmodx/configs/plugins/ChatAdditions/CA_Storage_CSBans.cfg

Расположение файла конфигурации для GameCMS: amxmodx/configs/plugins/ChatAdditions/CA_Storage_GameCMS.cfg

Стандартный CA_Storage_CSBans.cfg или CA_Storage_GameCMS.cfg (с описанием)

// MySQL адрес
// -
// Стандартное значение: "127.0.0.1"
ca_storage_host "127.0.0.1"

// MySQL имя пользователя
// -
// Стандартное значение: "root"
ca_storage_user "root"

// MySQL пароль
// -
// Стандартное значение: ""
ca_storage_pass ""

// MySQL имя таблицы (не рекомендуется изменять)
// -
// Стандартное значение: "players_gags"
ca_storage_dbname "players_gags"

В случае не верно указанных данных доступа к БД (адрес, логин и пароль) или невозможности подключения по какой-либо причине плагин оповестит в логах об ошибке подключения:

L 07/15/2021 - 23:09:04: [CA_Storage_CSBans.amxx] SQL: connection failed [2003] `Can't connect to MySQL server on '127.0.0.1' (10061)`

В скобках указан код ошибки MySQL. Ознакомиться с всем списком кодов и обозначений можно на сайте: https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html (TODO: найти лучший link с описанием)

Если все данные указаны верно, то система пошлёт запрос в БД на создание таблицы с названием из CVar'а ca_storage_dbname (players_gags), создаст автоматически необходимую структуру таблицы, поля, а так же оповестит об этом в логах.

L 07/15/2021 - 22:36:56: Table 'comms' created! (queryTime: '0.018' sec)

Управление списком Gag'ов производится из меню сервера или с помощью консольных команд, а так же, с помощью внишних панелей (CSBans, GameCMS, phpMyAdmin)

Примечание

При проблемах с соенинением с БД (медленный или не стабильный коннект) возможны проблемы. Допустим, при смене карты, сервер имеет долгое соединение с БД и игроки уже вошли в игру. В таковом случае система, как только установит соединение с БД, проверит каждого игрока на наличие Gag'а и применит необходимые меры для дальнейшей корректной работы.

А так же оповестит в логе о загрузке Gag'ов из кешированной очереди:

L 07/15/2021 - 19:25:19: Loaded 12 queue gags from DB (slow DB connection issue)

То же самое произойдёт при попытке установить Gag до инициализации БД:

L 07/15/2021 - 19:25:19: Saved 2 queue gags to DB (slow DB connection issue)