1、原题
1.1、英文原题
What is the purpose of changing ownership of datadir to the ‘mysql’ user?[1分]
A、MySQL needs to be run as the root user, but files cannot be owned by it.
B、The mysqld process requires all permissions within datadir to be the same.
C、MySQL cannot be run as the root user.
D、MySQL requires correct file ownership while remaining secure.
1.2、答案
D
2、题目解析
2.1、题干解析
本题考察MySQL对数据目录的操作系统全系西安要求。
2.2、选项解析
- MySQL不应该用root用户启动,因为会有风险。所以选项A错误。
- mysqld进程也就是MySQL服务器只需要数据目录的读写权限,并不需要执行权限,所以选项B错误。
- MySQL可以用root用户运行,只是这样会有风险而已,所以选项C错误。
- MySQL服务器需要的是数据目录的读写权限,安全法则里重要原则之一是最小化原则,就是在满足业务的前提下尽量少给权限,所以选项D正确。
3、知识点
3.1、知识点1:MySQL对datadir的权限要求
- 需要确保MySQL服务器可以读取和修改数据目录。注意,这里并没有说所有权限,只是需要读写权限,并没有说执行权限。
- 如果你在启动mysqld时得到Errcode 13(这意味着拒绝许可),这意味着数据目录或其内容的权限不允许服务器访问。在这种情况下,你要改变所涉及的文件和目录的权限,使服务器有权利使用它们。你也可以以root身份启动服务器,但这引起了安全问题,应该避免。
- 如果数据目录或其文件或子目录不属于你用来运行服务器的登录账户,请将其所有权改为该账户。如果该账户名为mysql,使用这些命令。
$> chown -R mysql /usr/local/mysql/var
$> chgrp -R mysql /usr/local/mysql/var
4、总结
- MySQL服务器需要数据目录的读写权限,不需要执行权限。
- MySQL服务器不要用root启动,否则有安全隐患。