我从终端获得以下权限:
$ cd /usr/local/mysql
$ ls -l
drwxr-xr-x 41 root wheel 1394 29 Apr 00:55 bin
drwxr-xr-x 4 root wheel 136 29 Apr 00:55 docs
drwxr-xr-x 3 root wheel 102 29 Apr 00:55 include
drwxr-xr-x 3 root wheel 102 29 Apr 00:55 lib
drwxr-xr-x 4 root wheel 136 29 Apr 00:55 libexec
drwxr-xr-x 15 root wheel 510 29 Apr 00:55 mysql-test
drwxr-xr-x 5 root wheel 170 29 Apr 00:55 share
drwxr-xr-x 29 root wheel 986 29 Apr 00:55 sql-bench
drwxrwxr-x 3 _mysql wheel 102 5 Mag 10:56 tmp
drwxrwxr-x 16 _mysql wheel 544 5 Mag 10:56 var
(mysqld_safe本身有755)。 tmp 是 mysql.sock 所在的位置,var 包含数据库。 MySQL 按问题中指定的方式使用 sudo 正常启动,但即使在启动后也不会询问 root 密码。如果在没有 sudo 的情况下发出 mysqld_safe ,它显然会失败并抱怨(./var 中的文件权限被拒绝)。 sudoers 文件仅包含以下有关权限的行:
root ALL=(ALL) ALL
答案1
您的规则未指定NOPASSWD
,因此应该需要密码 ( PASSWD
)。您是否检查过是否sudo
只是记住了上次输入 root 密码的时间?默认情况下(除非您设置Default timestamp_timeout=0
)它会这样做。