
1. Создаём клетку. Даём имя (я выбрал mysql), IP/netmask (например, 192.168.1.70/24) и папку где-то на дисках, в месте, которое переживёт перезагрузку. Я предпочитаю предварительно создать под такую клетку zfs датасет, дочерний датасету, где размещены у меня все клетки. То есть у меня - датасет Ext/Jails/mysql на пуле Pool. Но у вас может быть выбрано иное расположение, да и в датасет ставить не обязательно, можно и в простую папку. Просто с датасетом больше плюшек по администрированию.
2. Обновляем клетку до актуальной версии.
3. Запускаем клетку, смотрим её IP (в Бриге или командой jls), идём в командную строку, идём в клетку:
nas4free ~/ root~$ jls
JID IP Address Hostname Path
3 192.168.1.64 torrentmonitor.local /mnt/Pool/Ext/Jails/torrentmonitor
4 192.168.1.63 deluge.local /mnt/Pool/Ext/Jails/deluge
8 192.168.1.67 emby.local /mnt/Pool/Ext/Jails/emby
11 192.168.1.55 owncloud /mnt/Pool/Ext/Finch/usr/jails/owncloud
16 192.168.1.66 seafile.local /mnt/Pool/Ext/Jails/seafile
17 192.168.1.70 mysql.local /mnt/Pool/Ext/Jails/mysql
nas4free ~/ root~$ jexec 17 tcsh
root@mysql:/ #
4. Устанавливаем нужные нам пакеты
root@mysql:/ # pkg install mysql56-server nano
На все вопросы отвечаем утвердительно (Y). Сначала установится сам менеджер пакетов pkg, а потом качается и софт.
pkg сам создаст необходимых пользователей.
5. Настраиваем mysql для возможности стартовать и запускаем
root@mysql:/ # sysrc mysql_enable=yes
mysql_enable: -> yes
root@mysql:/ # service mysql-server start
Starting mysql.
6. Теоретически - можно использовать. Практически крайне рекомендовано включить систему безопасности.
root@mysql:/ # mysql_secure_installation
На вопрос о пароле нажать Enter - после установки пароль root пустой. Затем надо придумать и задать новый root пароль (и не забыть, потом он понадобится)
На дальнейшие вопросы соглашемся на умолчания. В частности, отключаем удалённый root доступ - не вредно для безопасности.
7. MySQL готов к работе. Можно при желании остановить клетку и снять с датасета снимок, назвать, к примеру, empty. Будет удобно откатываться к свежеустановленному состоянию при нужде.
8. Давайте создадим пользователя баз данных, несколько баз данных и дадим этому пользователю к ним полный доступ
Входим в командный интерпретатор, вводим пароль, который мы задали выше
root@mysql:/ # mysql -u root -p
Для примера, вот такие команды создадут три базы данных, пользователя seafile с паролем
Pa$SwORd
, который будет ходить из IP 192.168.1.66 и дадут доступ этому пользователю к этим трём базам данных. Это мне нужно для запуска seafile, которым как раз и занимаюсь. Понятно, имена баз и пользователей могут быть другие. И один mysql может обслуживать несколько задач. К примеру, тянуть БД для Kodi, NextCloud и пр.CREATE DATABASE ccnet_db;
CREATE DATABASE seafile_db;
CREATE DATABASE seahub_db;
CREATE USER seafile@192.168.1.66 IDENTIFIED BY 'Pa$SwORd';
GRANT ALL PRIVILEGES ON ccnet_db.* TO 'seafile'@'192.168.1.66';
GRANT ALL PRIVILEGES ON seafile_db.* TO 'seafile'@'192.168.1.66';
GRANT ALL PRIVILEGES ON seahub_db.* TO 'seafile'@'192.168.1.66';
FLUSH PRIVILEGES;
EXIT;