为了方便非 root 用户,例如 mysql 操作系统用户,使用依赖 Systemd 的操作系统级系统管理工具停止和启动 MySQL 服务器。
sudoers 文件中的以下条目将允许操作系统用户 mysql 通过操作系统管理包装器停止和启动 mysql 服务器。
# visudo ## MySQL Admin Cmnd_Alias MYSQLADMIN = /usr/bin/systemctl stop mysqld, /usr/bin/systemctl start mysqld,/usr/bin/systemctl restart mysqld mysql ALL=MYSQLADMIN
作为 mysql OS 用户,现在可以按预期停止/启动服务。
$ sudo systemctl stop mysqld $ systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) since Mon 2016-06-06 12:34:28 AEST; 1s ago Process: 11633 ExecStart=/usr/sbin/mysqld --daemonize $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 11617 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 11637 (code=exited, status=0/SUCCESS)
$ sudo systemctl start mysqld $ systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-06-06 12:34:38 AEST; 1s ago Process: 11697 ExecStart=/usr/sbin/mysqld --daemonize $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 11682 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 11701 (mysqld) CGroup: /system.slice/mysqld.service └─11701 /usr/sbin/mysqld --daemonize
注意:MySQL 5.6 本身不使用 systemd 包装器,即使在受支持的操作系统上也是如此。
它仍将使用 SysV 脚本,通常在 /etc/init.d 中。
这些可以在没有任何特殊权限的情况下停止/启动。
但是,需要特别注意,如果 DB 计划在系统启动时启动,如在这种情况下,可能存在根文件权限,例如锁定文件/错误日志。
日期:2020-09-17 00:14:45 来源:oir作者:oir