mysql安装的时候,有一步是mysql_install_db --user=mysql,新手请教

mysql安装的时候,有一步是mysql_install_db --user=mysql,查了下是生成授权表,请问生成授权表的作用是什么?还有后面的--user=mysql是指定用户吧?这个用户必须是mysql吗?如果这样做了,mysql用户会有哪些独有的权限呢?

生成授权表实际上是完成了mysql的初始化,在执行这个脚本之后,mysql里就会出现名为mysql的库。解决方法如下:

1、首先连接到mysql数据库,查看默认所有数据库信息,如下图所示。

2、因为user表存在于mysql数据库中,可以通过use命令来切换数据库。

3、切换数据库之后通过show命令可以查看数据库中所有的数据表,在最后可以看到user数据表。

4、通过desc命令可以查看user表的结构信息,因为User表所包含的信息比较多所以结构信息也比较多。

5、在默认没有创建其它用户的情况下,只有超级管理员的信息。

6、另外如何想要查直接查看超级管理员的权限可以通过show grants来进行查看。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-07

    生成授权表实际上是完成了mysql的初始化。你在执行这个脚本之后,mysql里就会出现名为mysql的库。mysql库里有常用的权限表等系统表。比如设置用户权限的user表。

    后面的参数--user所指定的用户是你想要运行mysqld进程用户名。这个是可变的,不一定非要是mysql。设置这个用户以后,所有通过mysqld进程创建的文件都会属于这个用户。网上的教程里多用mysql用户是为了在生产环境中更方便管理。

    不知道这样说你能不能明白。欢迎追问。

追问

那mysql目录以及其下的所有文件所有者都必须是mysql吗?这是必要的么?还有所属组?

追答

这个不是必须的。但是组最好设定为mysql组。在进行权限管理时方便管理。
linux系统默认用户(比如root)也是可以的。但是在生产环境中,一般只需要将日志的路径(配置文件中日志的路径),和数据文件路径(datadir参数)设置为mysql用户就可以了。(这个不同的公司也有不同的设置,但是简单来说是这样的。)
上面说的其实都是linux系统权限管理的内容。有些文件,比如你不希望其他用户看到的文件,或者只有指定用户可写的文件,就可以设定成某个特殊用户。至于你后面问的所属组的问题。这个也是权限管理的一部分。比如说,一个文件的用户权限是root,组权限是mysql,这样的文件就只能root用户和mysql组里的用户访问。

这样说不知道你能明白吗。

追问

哦 那是不是说即使不设置用户和所属组,也不影响使用?

追答

是的。不设置也并不影响使用。因为linux默认用户是root。mysql的基本权限就都涵盖了。
因此可以这样理解:用户和用户组的作用一般是为了在生产过程中进行系统级的权限管理。

谢谢你采纳。

本回答被提问者采纳
相似回答