哪些MySQL用户是必需的?


13

我的MySQL服务器有许多我没有添加的奇怪用户。这些都是必要的吗?

'root'@'127.0.0.1'
'root'@'localhost'
'root'@'SERVERNAME'
'root'@'::1'
''@'SERVERNAME'
''@'LOCALHOST'

如果删除除root @ localhost以外的所有根目录,是否可以将自己锁定在数据库之外?空用户名的目的是什么?他们似乎只有“ GRANT USAGE”?

作为主机和本地主机127.0.0.1之间有区别吗?如果我只有本地主机而不是127.0.0.1,这是否意味着使用TCP / IP而不是Unix套接字的mysqlclient将无法连接?

Answers:


16
  1. 这些用户似乎是安装MySQL时添加的默认用户。建议您在安装MySQL之后运行mysql_secure_installation

  2. 空的用户名(“ @'SERVERNAME')代表匿名用户。如果你没跑mysql_secure_installation或设置密码,那么任何人都可以访问。如果匿名用户具有GRANT USAGE特权,则基本上意味着它没有特权,但是完全删除匿名登录仍然是一个好主意。

  3. 不,本地主机和127.0.0.1之间没有太大区别。用户尝试登录的任何IP地址都必须与@[IP Address]用户名的一部分匹配。如果您是从同一台计算机上登录的,则MySQL服务器已打开,则@localhost@127.0.0.1将会匹配。正如IVlint67指出的那样,在某些安装中@localhost无法正常工作,因此最好使用@127.0.0.1


13

我通常使用MySQL随附的mysql_secure_installation脚本进行安装...


root@127.0.0.1是@ IP地址。root @ localhost是@主机名。服务器名称也是如此。最后一个根是本地主机的@ IPv6地址。


从MySQL网站:

尝试连接到主机127.0.0.1通常会解析为localhost帐户。但是,如果服务器使用--skip-name-resolve选项运行,则此操作将失败,因此在这种情况下127.0.0.1帐户很有用。

空的用户名:

一些帐户是针对匿名用户的。这些用户名为空。匿名帐户没有密码,因此任何人都可以使用它们连接到MySQL服务器

http://dev.mysql.com/doc/refman/5.0/en/default-privileges.html


最后:

如果删除除root @ localhost以外的所有根目录,是否可以将自己锁定在数据库之外?

是的,但是你可以回来

参见--skip-grant-tables:https : //help.ubuntu.com/community/MysqlPasswordReset

我是不是该?

我不在乎,它是您的服务器。如果是我的,我将使用密码按原样保护根帐户,并删除匿名帐户,除非您需要它们。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.