Адрес входа

Для того чтоб войти в веб-интерфейс управления SEPMYSQL необходимо в адресной строке браузера ввести:

http://[server IP]:4111/

и выбрать пункт меню Login. В появившейся форме входа необходимо ввести имя пользователя и пароль для доступа. Если программа только установлена, то для входа введите:

User name: admin
Password: admin

после входа обязательно смените пароль администратору.

Типы пользователей SepMySQL

Пользователи SepMySQL делятся на:

  1. суперпользователь
  2. MySQL operations allowed - пользователь, которому доступно операции по управлению MySQL сервисами: создание, удаление и пр.
  3. Rules operation allowed - пользователь, которому доступно операции по управлению доступа к MySQL сервисам: создание правила, удаление правила и пр.
  4. MySQL users manipulations allowed - пользователь, которому доступно операции по манипулированию даннвми MySQL сервисов: перемещение пользователей баз данных, добавление пользователя базы данных, зачистка данных и пр.

Пользователи могут быть комбинированными например:

  • user1 - MySQL operations allowed + Rules operation allowed
  • user2 - Rules operation allowed + MySQL users manipulations allowed
  • user3 - MySQL operations allowed + Rules operation allowed + MySQL users manipulations allowed

суперпользователем может быть только - admin

Доступные операции

Доступное меню SepMySQL разбито но подгруппы для разных типов пользователей.

  • Information
    • About
    • Install
    • Command line
  • Status
    • Services
    • MySQL
  • History
  • Users
    • Users list
    • User add
    • User del
    • Reset password
  • MySQL
    • List
    • Run command
    • Make backup (all)
    • Make backup (one server)
    • Make backup (one database)
    • Restore from backup
    • MySQL services management
    • CRON tasks list
    • MySQL force stop
    • Edit my.cnf
    • Make replication
    • Start ID service
  • Operations
    • Move user
    • Copy database
    • Create DB user
    • Delete DB user
    • List DB users
    • Remove MySQL data
  • Rules
    • Rules list
  • Configuration
    • Regenerate config file
    • Stop SEPMYSQL
    • Add licesne
    • Show license info
    • Monitor
  • Change password
  • Logout

Для суперпользователя доступны все группы меню.

Для пользователя с типом MySQL operations allowed доступны группы меню:

  • Information
  • Status
  • MySQL
  • Change password
  • Logout

Для пользователя с типом Rules operation allowed доступны группы меню:

  • Information
  • Status
  • Rules
  • Change password
  • Logout

Для пользователя с типом MySQL users manipulations allowed доступны группы меню:

  • Information
  • Status
  • Operations
  • Change password
  • Logout

Описание функций SepMySQL

Отобразить ифнормацию о сервисах sepmysql и sepmysql-watcher. Два основных сервиса, первый отвечает за правила и занимается диспетчеризацией запросов, второй отвечает за запуск и слежение за сервисами MySQL.

Это информационная страница. Никаких действий сделать не позволяет.

Отобразить информацию о запущенных сервисах MySQL, созданных и контролируемых SepMySQL.

Это информационная страница. Никаких действий сделать не позволяет.

Отобразить историю всех последних операций в SepMySQL. Все операции производимые в SepMySQL логируются в журнал.

Это информационная страница. Никаких действий сделать не позволяет.

Отобразить список доступных пользователей SepMySQL и их права.

Это информационная страница. Никаких действий сделать не позволяет.

Добавить нового пользователя системы SepMySQL. Допустимые для ввода поля:

  • User name(login) - имя нового пользователя
  • Password - пароль для входа нового пользователя
  • Флажки, права нового пользователя (описаны выше):
  • MySQL operations allowed?
  • Rules operations allowed?
  • MySQL users manipulations allowed?

На примере ниже показан пример пользователя с правами по манипулированию MySQL сервисами и правилами

Удалить пользователя SepMySQL. При выборе указанного пункта меню открывается список доступных пользователей. Для удаления необходимо напротив имени пользователя поставить галочку в столбце "Del" (на рисунке ниже - кружочек с номером 1), по завершению установки галочек необходимо нажать кнопку "Del" (на рисунке ниже - кружочек с номером 2).

Сбросить пароль пользователя SepMySQL на стандартный - "password". При выборе указанного пункта меню открывается список доступных пользователей. Для сброса необходимо напротив имени пользователя поставить галочку в столбце "Reset pasword", по завершению установки галочек необходимо нажать кнопку "Reset password".

Отобразить список доступных MySQL сервисов созданных в SepMYSQL. При выборе указанного пункта меню формируется таблица со следующими столбцами:

  1. MySQL name - название сервиса MySQL. Может быть произвольное, служит для идентификации созданного сервиса. Тип MySQL и пользователь.
  2. Custom - системные пути, необходимые для запуска MySQL сервиса.
  3. Net access - возможен ли сетевой доступ к сервису и по какому порту.
  4. Custom start - путь и тип скрипта для запуска MySQL сервиса, если необходимо.
  5. Limit - необходимо ли ограничение в использовании ресурсов сервисом MySQL.
  6. Additional arguments - дополнительные параметры запуска MySQL сервиса

Пример таблицы:

На текущий момент доступны следующие версии MySQL для запуска:

  1. MySQL 5.0
  2. MySQL 5.1
  3. MySQL 5.5
  4. MySQL 5.6
  5. MariaDB 5.5
  6. MariaDB 10.0
  7. Percona 5.5
  8. Percona 5.6
  9. Custom - это произвольная версия MySQL сервиса который например уже был установлен на сервере до установка SepMySQL или какой-либо алтернативный сервис MySQL установленный из стороннего репозитория. Пример такого сервиса:
Service MySQL name: Standard
Version of MySQL service: Custom
MySQL access socket: /var/lib/mysql/mysql_real.sock
Config file: /etc/my.cnf
Data dir: /var/lib/mysql
User MySQL owned by: mysql
Tmp dir: /tmp
Path to mysqld binary file(custom): /usr/libexec/mysqld.
Log file(custom): /var/log/mysqld.log
Pid file(custom): /var/run/mysqld/mysqld.pid
Additional parameters:
--open-files-limit=65535 
--plugin-dir=/usr/lib/mysql/plugin

MySQL->Add

Добавить новый сервис на контроль SepMySQL. Список доступных для конфигурирования параметров или новый сервси можно создать из шаблона. Шаблон это список ранее настраиваемых параметров, полезен для Custom версий сервисов.

Обязательные параметры

  • MySQL name - задать имя сервиса
  • Type of MySQL - тип MySQL сервиса или версия (MySQL 5.0, MySQL 5.1, MySQL 5.5, MySQL 5.6, MariaDB 5.5, MariaDB 10.0, Percona 5.5, Percona 5.6, Custom). Для все типов MySQL кроме Custom, конфигурационные параметры генерируются автоматически.
  • Owner of MySQL service - пользователь, под которым сервис будет запущен

Custom

Эти параметры будут использованы только в том случае, если выбран тип MySQL сервиса Custom в предыдущей секции:

  • Path to mysqld binary file(only for custom) - путь к бинарному файлу запускающему mysql сервис
  • Path to database creation utility - путь к утилите, которая создает структуру базы данных, если таковой в каталоге данных нет. Обычно эта утилита называется mysql_install_db. Её местоположение вычисляется либо командой find либо такой командой (для пакета mysql55-server-5.5.38) - rpm -ql mysql55-server | grep mysql_install_db | grep -v gz
  • Log path - путь к лог файлу сервиса
  • PID path - путь к pid файлу сервиса (т.е файла, хранящего Process ID)
  • Basedir - базовая директория сервиса
  • Socket path - путь к сокету доступа к MySQL сервиса UNIX. Если необходим доступ не через UNIX сокет - об этом описано ниже
  • Data dir - путь к каталогу, где хранятся или будут хранится данные сервиса
  • Config file path - путь к конфигурационному файлу сервиса
  • Tmp dir - путь к каталогу для хранения временный файлов сервиса

Пример добавления нового сервиса: 1. Нажать на кнопку Add new MySQL service и выбрать пункт меню New MySQL или New MySQL From Template

2. В открывшемся выбрать Имя, Тип и Пользователя под которым будет запускаться сервис, в случае типа Custom добавить еще дополнительные параметры. Для создания из шаблона необходимо только заполнить имя.

3. Нажать Add. В таблице появится запись нового MySQL сервиса, но новый сервис еще не будет создан. Можно дополнительно настроить сетевой доступ, пусковой скрипт, лимиты и дополнительные параметры запуска.

MySQL->Add network access

Сервис MySQL контролируемый SepMySQL может работать не только на UNIX сокете, но и на прослушивании порта. Для этого необходимо нажать Add Port, в открывшемся окне указать порт для прослушивания и нажать Add. Для удаления порта, необходимо нажать Remove port.

MySQL->Add startup script service

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

Враппер может быть двух типов:

  • Start script without startup parameters(fullconfig) - в скрипт-враппер передаются все пераметры запуска MySQL сервиса формируемые SepMySQL, во враппере возможно добавить установку переменных окружения или дополнить параметры запуска. Первым параметров во враппер передается путь к бинарному файлу mysqld. Пример такого враппера ниже:
#!/bin/bash
MYSQL_DEBUG=d:t:O,/tmp/client.trace
export MYSQL_DEBUG
cmd="$1"
shift
"$cmd" "$@" --key_buffer_size=512K --sort_buffer_size=100K --read_buffer_size=100K
  • Start script with own startup parameters(binaryonly) - в скрипт-враппер не передается ни один из параметров формируемых SepMySQL, передается только путь к бинарному файлу mysqld. В этом случае враппер кроме своих дополнительных действий должен самостоятельно сформировать необходимые параметры запуска и запустить с ними mysqld. Пример такого враппера ниже:
#!/bin/bash
MYSQL_DEBUG=d:t:O,/tmp/client.trace
export MYSQL_DEBUG
cmd="$1"
"$cmd" --defaults-file=/opt/sepmysql/workspace/confs/Test1/my.cnf --basedir=/opt/sepmysql/mysql51 --datadir=/opt/sepmysql/workspace/data/Test1 --user=test1 --log-error=/opt/sepmysql/workspace/data/Test1/Test1.log --pid-file=/opt/sepmysql/workspace/data/Test1/Test1.pid --port=3067 --socket=/opt/sepmysql/workspace/socks/Test1/Test1.sock --tmpdir=/opt/sepmysql/workspace/mysqltmps/Test1 --key_buffer_size=512K --sort_buffer_size=100K --read_buffer_size=100K

Для добавления запуска через враппер необходимо нажать Add custom script и выбрать тип враппера fullconfig или binaryonly и указать путь к файлу врапперу.

Важное замечание!!! Желательно чтобы врапперы запускали mysqld с путем к pid файлу и sock файлу известными SepMYSQL, например установленные в параметрах Custom при создании сервиса или совпадающие с теми что генерируются автоматически для сервиса. В таком случае SepMYSQL сможет отслеживать сервисы запускаемые из врапперов автоматически. В противном случае - сервисы будут только запускаться, но отслеживаться не будут.

MySQL->Add LVE(CloudLinux) limits

Добавить лимиты выбранному сервису MySQL.

Для выбранного сервиса MySQL "MySQL name", устанавливается номер контейнера "LVE ID" (число) или указывается имя пользователя "Server user name", UID которого используется в качестве идентификатора контейнера. Сервис MySQL запускается в контейнере и потребляет ресурсы ЦПУ, памяти и IO согласно настойкам контейнера. Работает только под управлением CloudLinux (больше информации о CloudLinux можно прочитать здесь cloudlinux.com)

MySQL->Add limits CPU & MEM

Для выбранного сервиса MySQL "MySQL name", можно установить допустимый % загрузки CPU, так же допустимый лимит памяти в мегабайтах. Данный тип лимитирования не позволяет лимитировать IO нагрузку, работает на базе утилиты cpulimit. -1 - лимит отсутствует.

MySQL->Add startup MySQL parameter

Добавление параметра запуска службы MySQL. Необходимо нажать Add parameter и ввести параметр запуска. Для удаления параметра необходимо нажать на крестик рядом с параметром.

MySQL->Del & Template

Для удаления сервиса MySQL необходимо нажать Remove в колонке MySQL Name. Для добавления текущей настройки сервиса в шаблоны необходимо нажать Template.

Для сохранения сервиса в конфигурационный файл необходимо нажать Save changes to file. Для отмены изменений - Reset changes. Для немедленного применения изменений демону - Apply changes to daemon

Отправить SQL запрос к выбранной базе и выбранному MySQL сервису. Задается имя сервиса, база (например mysql) и сам MySQL запрос. После нажатия на кнопку "Get Result" - формируется результат.

Создать резервную копию всех баз всех сервисов, контролируемых SepMySQL. Задача грузит сервер, начинает выполняться не мгновенно, а добавляется заданием в крон. Для просмотра крон задач стоящих в очереди используйте меню MySQL→CRON tasks list. Для доступа к созданному архиву используйте меню MySQL→Restore from backup.

Создать резервную копию всех баз одного сервиса, контролируемого SepMySQL, выбранного с помощью селектора "MySQL name". Задача грузит сервер, начинает выполняться не мгновенно, а добавляется заданием в крон. Для просмотра крон задач стоящих в очереди используйте меню MySQL→CRON tasks list. Для доступа к созданному архиву используйте меню MySQL→Restore from backup.

Создать резервную копию одной выбранной в поле "Database name" базы одного сервиса, контролируемого SepMySQL, выбранного с помощью селектора "MySQL name". Задача грузит сервер, начинает выполняться не мгновенно, а добавляется заданием в крон. Для просмотра крон задач стоящих в очереди используйте меню MySQL→CRON tasks list. Для доступа к созданному архиву используйте меню MySQL→Restore from backup.

Восстановить из резервной копии базы(одну базу) данных. При выборе пункта меню открывается список доступных резервных копий. Копии могу содержат как восстановление для всех баз и сервисов, так и для всех баз одного сервиса или даже резервную копию для одной базы одного сервиса. Формируется таблица с полями:

  1. Restore data from backup - список кнопок для восстановления резервной копии
  2. Backup name - название файла резервной копии из которого будет происходить восстановление
  3. MySQL - название MySQL сервиса, базы которого будут восстановлены
  4. Saved database - какие базы данных были сохранены - (All databases - все, либо конкретное имя базы)

При нажатии на кнопку "Restore data from backup" в необходимой строке, задача восстановления соответствующей резервной копии будет поставлена в очередь задач крон.

Управление сервисами MySQL контролируемых SepMYSQL. Выбранное меню позволяет остановить, запустить или перезапустить выбранный сервис.

Список задач, стоящих в очереди заданий крон. Отображаются задачи:

  1. MySQL→Restore from backup
  2. MySQL→Make backup (one database)
  3. MySQL→Make backup (all)
  4. MySQL→Make backup (one server)
  5. Operations→Move user
  6. Operations→Copy database
  7. Operations→Remove MySQL data

Доступные для отображения поля:

  1. User created job - кто создал задание
  2. Job was created - когда было создано задание
  3. Command - какой утилитой и какой командой задача будет выполняться
  4. Begin time - время начала выполнения задания
  5. End time - время окончания выполнения задания
  6. Result - результат выполнения задания (Пустое или содержит слово successfull - значит задание выполнено успешно, иначе сообщение об ошибке)

На рисунке выше задания с ошибками выделены красной линией, успешные задачи выделены зеленой. Это информационная страница. Никаких действий сделать не позволяет.

Принудительный перезапуск сервиса MySQL контролируемых SepMYSQL. Выбранное меню позволяет принудительно остановить выбранный сервис. Сервису посылается команда - kill -9

Изменение или перезапись my.cnf для выбранного в выпадающем списке MySQL сервиса. Можно как переписать файл конфигурации, так и просто добавить в его конец конфигурационные установки.

Пункт меню позволяет организовать репликацию двух локальных сервисов MySQL по типу Master→Master или Master→Slave. В каких случаях может понадобится локальная репликация: 1) для дублирования и сохранения данных на втором подключенном жестком диске

Пример создания Master→Slave реплики:

Шаг 1: Нажать на кнопку Add new master-slave Шаг 2: выбрать из списка доступный MySQL для master и MySQL для slave, задать пользователя (которого еще не существует) для репликации, пароль для нового пользователя и IP адрес машины, где работают MySQL сервисы Шаг 3: Нажать кнопку Add и ждать появления сообщения о процессе создания реплики Шаг 4: в случае OK - будет создана запись о репликационной паре

Реплика Master-Master делается аналогично.

Изменить идентификатор репликации. При создании реплики, каждый MySQL сервис должен получить уникальный номер реплики. Номер следующей реплики хранится в глобальном счетчике. Если на сервере уже есть репликационные пары с идентификатором больше чем сохраненный счетчик (Current Min ID = …), то необходимо этот счетчик поднять до значения больше чем максимальный идентификатор существующей реплики.

Скопировать пользователя базы данных из одного MySQL сервиса в другой. Задание будет добавлено в крон задачи. SepMySQL попытается вычислить все связанные с пользователем базы данных, сделать их копию и скопировать и создать их на сервисе MySQL приемнике. А также создать пользователя на сервисе приемнике с аналогичными сервису источнику правами.

  • Copy user from - сервис MySQL откуда копировать пользователя
  • Copy user to - сервис MySQL куда копировать пользователя
  • User - имя пользователя для копирования

Скопировать базу данных из одного MySQL сервиса в другой. Задание будет добавлено в крон задачи. SepMySQL попытается сделать копию указанной базы данных и создать ее на сервисе MySQL приемнике.

  • Copy DB from - сервис MySQL откуда копировать базу данных
  • Copy DB to - сервис MySQL куда копировать базу данных
  • Database name - имя базы данных для копирования

Создать пользователя базы данных для выбранного MySQL сервиса. Возможно указать доступ к какой базе будет у пользователя, а также его привилегии. При установке галочки "SMART RULE" для имени пользователя не будет создано правило в списке правил доступа к сервису (о правилах будет рассказано ниже). Если галочка отсутствует, то правило будет создано автоматически. Наличие галочки "SMART RULE" обозначает что для пользователя уже создано неявное правило, например "*".

Удалить пользователя базы данных, указанного в поле "User", для указанного в "MySQL name" сервисе MySQL.

Отобразить список пользователей базы данных для указанного в поле "MySQL name" сервиса MySQL.

Если выбрать пункт меню MySQL→Del и удалить MySQL сервис, то этот сервис больше не будет запускаться и отслеживаться в SepMySQL, но данные его останутся, т.е его каталог с базами данных и конфигурационными файлами. И возможно будет восстановить этот сервис, путем повторного создания сервиса с таким же именем. Для пересозданного MySQL сервиса база данных и конфигурационный файл не будут пересозданы.

Если же необходимо полное удаление данных без их возврата, то текущее меню в этом поможет. В выпадающем списке "List of deleted MySQL with no deleted data yet" отображаются каталоги данных для MySQL сервисов, которые удалены (если таких нет - то список будет пустой). При выборе значения из списка и нажатия на кнопку "Clean data" будет добавлено крон задание и данные и конфигурационный файл удаленного MySQL сервиса после выполнения задания будут удалены.

SepMySQL состоит из двух программ: 1) программа контролирующая работу MySQL сервисов ("наблюдатель") и 2) программа диспетчер, которая предоставляет единый сокет для доступа ко всем сервисам, контролируемым "наблюдателем". Если не настраивать диспетчер, то один "наблюдатель" в рамках одного сервера позволяет запустить различные версии MySQL севрвисов, но доступ клиентов к этим сервисам возлагается на администратора. Например клиентам могут быть разосланы порты (которые слушают соответствующие MySQL сервисы или UNIX сокеты). Такая схема, работающая на базе одного "наблюдателя" свойственна для выделенных серверов, где располагается только база данных, а клиенты присоединяются к нему по сети. В таком случае в рамках одного сервера можно поднять, например 20 сервисов MySQL различных версий, под разными пользователями и с разными лимитами и настройками и раздать клиентам порты к ним.

Если же клиенты и базы данных находятся на одном сервер, то подход с разными портами выглядит не очень изящно. В этом случае используется схема с "диспетчером", который предоставляет единый сокет для всех клиентов и самостоятельно решает на какой MySQL сервис переправить запрос от клиента.

Куда отправить запрос "диспетчеру" помогают решать правила. Правило представляет собой пару: IP:пользователь → цепочка MySQL сервисов куда запрос будет отправлен.

Цепочка MySQL сервисов - это список MySQL сервисов, которые обрабатывают запрос от пользователя, подпадающего под данное правило. Запросы от пользователя переправляются на первый доступный сервси из цепочки. В случае выхода из строя доступного сервиса, запросы перенаправляются на второй и т.д. Несколько сервисов в цепочки полезны в случае репликации MySQL служб. Также переключение текущего сервиса в цепочке осуществляется при включенной балансировке, если текущий сервер сильно нагружен, то запросы переправляются на более свободный.

IP - IP адрес, откуда поступает запрос.

Механизм определения пользователя будет описан ниже в пункте Configuration→Regenerate config file.

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

user1_db1->MySQL1

запросы к базе от пользователя user1_db1 будут направлены к MySQL сервису с именем MySQL1

user1_*->MySQL2

запросы к сервису MySQL2 будут посылаться от пользователей, чье имя начинается на user1_: user1_db1, user1_db2, user1_db3_db4 и т.д

*_db2->MySQL3

запросы к сервису MySQL3 будут посылаться от пользователей, чье имя заканчивается на _db2: user1_db2, user2_db2, user2_db3_db2 и т.д

user1_*dbN->MySQL4

запросы к сервису MySQL4 будут посылаться от пользователей, чье имя начинается на user1_ и заканчивается на dbN: user1_dbN, user1_test_dbN, user1_db3test_dbN и т.д

*->MySQL5

запросы к сервису MySQL5 будут посылаться от всех пользователей

Список правил

Правило может быть как одно, так и несколько. Каждому правилу присваивается порядковый номер(в рамках одного и того же IP). Правило с меньшим порядковым номером выполняется раньше чем правило с большим порядковым номером. Поиск в списке правил прекращается при успешном нахождении соответствия.

Пример списка правил для IP=*:

Номер Пользователь MySQL сервис
1. user1_db1 MySQL1
2. user1_*_db2 MySQL2
3. user1_* MySQL3
4. user2_* MySQL4
5. * MySQL5

*

  • Если приходит запрос от пользователя user1_db1, то срабатывает 1-ое правило, запрос адресуется к MySQL1.
  • Если приходит запрос от пользователя user2_db5, то 1-ое, 2-ое, 3-ее пропускается, т.к. не соответствуют маске и срабатывает 4-ое правило, запрос отсылается к MySQL4.
  • Если приходит запрос от user1_test, то 1-ое и 2-ое правило не срабатываю, а срабатывает только 3-ее правило и запрос отсылается к MySQL3.
  • 5-ое правило собирает и посылает к MySQL5 запросы от всех остальных пользователей, имя которых не соответствует ни одному из первых 4-ех правил.

Rules->Rules list веб интерфейс

Выводится список существующих правил для SepMySQL и цепочек MySQL сервисов.

Rules->Add rule

Вначале формируются цепочки.

Для формирования цепочки: 1) Нажать на кнопку Add new chain и ввести имя цепочки и нажать Add

2) Добавить MySQL сервисы в цепочку, нажав на кнопку Add MySQL. В появившемся окне ввести IP адрес и порт или имя локального MySQL сервиса и IP клиента или *, если IP не важен

После того как цепочки сформированы, добавление правила выглядит следующим образом.

1) Нажать кнопку Add new rule

2) заполнить поля формы:

IP - IP адрес клиента, например 195.195.195.195 или *, если IP адрес не важен Rule - само правило, маска Blocked - заблокировано правило или нет. Т.е запросы от пользователей подпаающих под правило не будут перправлятся к MySQL, а будет возвращаться пакет, что число соединений достигло максимума. Is Smart - смарт правило или нет. Описано ниже Chain - имя цепочки или имя для smart правила

Для сохранения сервиса в конфигурационный файл необходимо нажать Save changes to file. Для отмены изменений - Reset changes. Для немедленного применения изменений демону - Apply changes to daemon

в дальнейшем созданное правило можно отредактировать - т.е заблокировать или разблокировать:

или изменить цепочку:

или изменить позицию правила, т.е поднять вверх (Move up) или опустить вниз (Move Down):

Smart rule - это правило, которое позволяет SepMySQL сформировать имя сервиса в зависимости от имени обращающегося пользователя.

Это обычно регулярное выражение вида username_*_* которое не привязано к конкретному MySQL, имя MySQL сервиса определяется динамически. Т.е для примера есть сервисы username1, username2 и т.д. И есть смарт правило (username)_*:(1)(2), запрос делает username_1. имя пользователя разбивается на 3 группы: 0 - username_1, 1 - username, 2 - 1. Генерируется имя mysql из первой и второй группы, т.е username1. Запрос отправляется на сервис username1.

Т.е в качестве имени MySQL можно указывать не полное имя сервиса а его часть и номер группы извлеченное в качестве регулярного выражения из имени обратившегося пользователя(как описано в примере выше).

Т.е для определения такого правила задается: Rule: (username)_* - имя username в скобочках, чтобы обозначить, что в регулярном вырадении это будет превая группа, знак * - это будет вторая группа. (каждый новый знак * - будет обозначать новую группу) MySQL name where user forwarded to: (1)(2) - т.е имя сервиса будет полностью сформировано из имени пользователя. Если не будет найдено ни одного сервиса MySQL, то запрос от пользователя будет переправлен сервису, обрабатывающего правило *.

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

  • Socket type (Unix or Port) - Unix socket или Internet port, тип сокета создаваемого "диспетчером", для единого доступа всех клиентов к сервисам MySQL.
  • Socket should be same as in /etc/my.cnf, owner of the socket separated by colon - путь к сокету. Сокет, должен быть тот же что прописан в /etc/my.cnf, через двоеточие владелец сокета (обычно /var/lib/mysql/mysql.sock:mysql)
  • Path to file where will be stored access rule - путь к файлу для хранения правил доступа
  • User connected to MySQL identification type - Тип определения пользователя, обратившегося к MySQL. Для того чтоб идентифицировать пользователя и соответствующий для него MySQL сервис, диспетчер может использовать следующие схемы:
    • Detect MySQL by the process owner - процесс обращающийся к сокету /var/lib/mysql/mysql.sock принадлежит определенному пользователю, "диспетчер" получает этого пользователя и по его имени находит соответствующий ему MySQL сервис
    • Detect MySQL by the requested database user - пользователь идентифицируется по пользователю базы данных.
    • Detect MySQL by the pert of name requested database user - аналогично "Detect MySQL by the requested database user", но берется не все имя пользователя базы данных, а только первая часть до разделителя указанного в параметре "User name separator".
  • Logging type - тип логирования, от DEBUG до MINIMAL
  • Path to file where will be stored options of MySQL - путь к файлу хранящему список настроек MySQL
  • Path to sepmysql command socket - путь к unix сокету команд (необходим для sepmysqlctl)
  • Sepmysql command socket owner - пользователь, который может обращаться к сокету команд
  • User name separator - разделитель для имени пользователя (для режима "Detect MySQL by the pert of name requested database user"). Пример: разделитель - "_", обратившийся пользователь test1_user. _user будет отсечено, будет осуществел поиск правила для отсавшейся части имени - т.е для test1
  • configrescan - интервал в секундах, по истечении которого "диспетчер" перечитывает файлы настройки.
  • serverip - текущий IP адрес сервера
  • fakepid - т.к. каждый сервис MySQL создает свой собственный pid, но на сервере могут быть программы, которые использовали pid mysql, поэтому здесь прописывается путь к стандартному pid файлу и SepMySQL следит за этим pid файлом и конфликтов не происходит
  • threadmaxpool - число запускаемых потоков при старте диспетчера запросов, по умолчанию 0 (т.е пул не создается), при значении более 0 - создаются потоки, которые обрабатывают приходящие запросы. Не тратится процессорное время на создание нового потока.

Для сохранения нажмите кнопку "Rewrite".

Большинство настроек не требует изменения, поэтому желательно их оставить со значениями по-умолчанию.

Остановка SepMySQL служб

Добавить лицензию на SepMySQL. Ознакомится с типами лицензий и также получить бесплатную лицензию можно по адресу: http://sepmysql.bayrepo.net.

Отобразить информацию о текущей лицензии

Отобразить страницу по сбору информации о MySQL сервисах.

Изменить пароль текущей учетной записи SepMYSQL.

Выход из системы.

Управление из командной строки

Для управления SepMYSQL функционалом через командную строку существует утилита: /opt/sepmysql/distr/bin/sepmysql-ctl.

Список доступных параметров утилиты:


[#] /opt/sepmysql/distr/bin/sepmysql-ctl --help
sepmysql-ctl command [name] [additional parameters]
      command:
          stop:            stop mysql with name
          start:           start mysql with name
          fullstop:        stop whole daemon
          status:          check mysql name status
          list:            list started mysqls
          execute:         execute sql command
                  --name          mysql name
                  --command       sql command
                  --db            db for sql command [optional]
                  --limit         number of output strings
          backupdb:          make backup of db
                  --name          mysql name
                  --database      database name
          backup:            make backup of mysql
                  --name          mysql name
          backupall:         make full backup
          restore:         restore mysql from backup
                  --name        mysql name to save
                  --path          path to backup
          restoreall:      restore all mysqls
                  --path          path to backup
          listallbkp:      show backups info
          copydb:          copy database to another mysql
                  --namefrom        mysql name from
                  --nameto          mysql name to
                  --db              database to move
          check_sepmysql:  check sepmysql daemon status
          check_sepmysqlw: check sepmysql-watcher daemon status
          deletemdata:     delete all data stored for deleted mysql name
          kill:            force mysql kill for name
          listdeleted:     show deleted MySQL(not custom)
          addlicense:      register new license
          getlicense:      show license info
          reload_watcher:  reload configuration of watcher
          reload_disp:     reload configuration of dispatcher
          help:   --help   this help
          version:--version show program version

Пример использования утилиты:

[~]# /opt/sepmysql/distr/bin/sepmysql-ctl list
NAME    TYPE    USER    SOCKET
Native  custom  mysql   /var/lib/mysql/mysql_real.sock
MySQL57 mysql57 mysql   /opt/sepmysql/workspace/socks/MySQL57/MySQL57.sock
mysql54 mysql41 mysql   /opt/sepmysql/workspace/socks/mysql54/mysql54.sock

Запуск утилиты возможен из под пользователя root или под пользователем, указанным в файле /etc/sepmysql/sepmysql в параметре commanduser= (по умолчанию обычно sepmysqlweb, поле "Sepmysql command socket owner", описанное в пункте Configuration→Regenerate config file).