MariaDB 起動/停止

起動/停止(RedHat : SysVinit, Upstart)

・起動スクリプトコピー

[root]# cp -v /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

・パーミッション変更

[root]# chmod 755 /etc/rc.d/init.d/mysqld

・起動/停止

[root]# service mysqld { start stop restart reload force-reload status configtest }

・自動起動/停止

[root]# chkconfig --add mysqld

[root]# chkconfig mysqld { on off }


起動/停止(Ubuntu : SysVinit, Upstart)

Sysvinit の init プロセス用リンクを作成、削除。サービスをソースインストールした場合、設定が必要。

・起動スクリプトコピー

[root]# cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

・パーミッション変更

[root]# chmod 755 /etc/init.d/mysqld

・リンクを作成 / 削除

[root]# update-rc.d mysqld defaults / remove

・確認
    [root]# ls -l /etc/rc*.d | grep mysqld

lrwxrwxrwx 1 root root 16  2月 12 15:37 K01mysqld -> ../init.d/mysqld
lrwxrwxrwx 1 root root 16  2月 12 15:37 K01mysqld -> ../init.d/mysqld
lrwxrwxrwx 1 root root 16  2月 12 15:37 S01mysqld -> ../init.d/mysqld
lrwxrwxrwx 1 root root 16  2月 12 15:37 S01mysqld -> ../init.d/mysqld
lrwxrwxrwx 1 root root 16  2月 12 15:37 S01mysqld -> ../init.d/mysqld
lrwxrwxrwx 1 root root 16  2月 12 15:37 S01mysqld -> ../init.d/mysqld
lrwxrwxrwx 1 root root 16  2月 12 15:37 K01mysqld -> ../init.d/mysqld

    ※ 上記リンクが無くても、Systemd によるサービス管理はできる

起動/停止(RedHat, Ubuntu : Systemd)

・ユニットファイル記述

デフォルト設定(dnf, rpm アップグレード時に書き換わる)

[root]# vim /usr/lib/systemd/system/mysqld.service

[Unit]
Description = MariaDB - Database Server
After = network.target

[Service]
Environment=SYSTEMD_LOG_LEVEL=debug,console:info
ExecStart = /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecStop = /bin/kill -SIGTERM $MAINPID
ExecReload = /bin/kill -SIGHUP $MAINPID
Restart = on-failure
RestartSec = 10s

SystemCallArchitectures = native
SystemCallFilter=~@clock
SystemCallFilter=~@cpu-emulation
SystemCallFilter=~@debug
SystemCallFilter=~@module
SystemCallFilter=~@mount
SystemCallFilter=~@obsolete
SystemCallFilter=~@privileged
SystemCallFilter=~@raw-io
SystemCallFilter=~@reboot
SystemCallFilter=~@resources
SystemCallFilter=~@swap

RestrictRealtime = yes

RemoveIPC = yes
PrivateIPC = yes

CapabilityBoundingSet =~ CAP_SYS_TIME CAP_SYS_PACCT CAP_KILL CAP_WAKE_ALARM \
    CAP_(DAC_*|FOWNER|IPC_OWNER) CAP_BPF CAP_LINUX_IMMUTABLE \
    CAP_IPC_LOCK CAP_SYS_MODULE CAP_SYS_TTY_CONFIG CAP_SYS_BOOT CAP_SYS_CHROOT \
    CAP_BLOCK_SUSPEND CAP_LEASE CAP_(CHOWN|FSETID|SETFCAP) CAP_SET(UID|GID|PCAP) \
    CAP_SYS_PTRACE CAP_SYS_(NICE|RESOURCE) CAP_SYS_RAWIO CAP_NET_ADMIN \
    CAP_NET_(BIND_SERVICE|BROADCAST|RAW) CAP_AUDIT_* CAP_SYS_ADMIN CAP_SYSLOG \
    CAP_MKNOD CAP_MAC_*

User = mysql
Group = mysql
PermissionsStartOnly = yes
UMask = 0077

ProtectHome = yes
ReadWritePaths = /usr/local/mysql

PrivateDevices = yes
ProtectClock = yes
ProtectKernelLogs = yes
ProtectKernelModules = yes
ProtectKernelTunables = yes
ProtectControlGroups = yes

NoNewPrivileges = yes
IPAddressDeny = any
IPAddressAllow = localhost
IPAddressAllow = 192.168.1.0/24
MemoryDenyWriteExecute = yes
ProcSubset = pid

RestrictNamespaces = yes
RestrictSUIDSGID = yes
ProtectHostname = yes
LockPersonality = yes
ProtectProc = invisible

[Install]
WantedBy = multi-user.target

ユーザー設定(優先される、設定変更はこちらに対して行う)

[root]# cp -v /usr/lib/systemd/system/mysqld.service /etc/systemd/system

・ユニットファイル登録/変更時

[root]# systemctl daemon-reload

・systemd によるセキュリティスコア
    [root]# systemd-analyze security mysqld.service
・起動/停止

[root]# systemctl { start stop reload-or-restart } mysqld.service

・自動起動/停止

[root]# systemctl { enable disable } mysqld.service

・起動/自動起動を同時に行う

[root]# systemctl enable --now mysqld.service

・停止/自動停止を同時に行う

[root]# systemctl disable --now mysqld.service


データベースへアクセス

[user]$ mysql -u ユーザー名 -p データベース名