哪些 MySQL 用户是必需的?

哪些 MySQL 用户是必需的?

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

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

如果我删除除 root@localhost 之外的所有 root 用户,我最终会把自己锁定在数据库之外吗?空用户名有什么用?它们似乎只有“GRANT USAGE”??

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

答案1

  1. 这些用户似乎是默认用户在安装 MySQL 时添加。建议你运行mysql_secure_安装安装 MySQL 后。

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

  3. 不,localhost 和 127.0.0.1 之间没有太大区别。无论用户尝试从哪个 IP 地址登录,都必须与@[IP Address]用户名的部分匹配。如果您从 MySQL 服务器所在的同一台机器登录,则@localhost@127.0.0.1将匹配。正如 IVlint67 指出的那样,在某些安装中,使用@localhost不起作用,因此最好使用@127.0.0.1

答案2

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


[电子邮件保护]是 @ IP 地址。root@localhost 是 @ 主机名。服务器名称也是如此。最后一个 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

我是不是该?

我不在乎,这是你的服务器。如果是我的,我会用密码保护 root 帐户,并删除匿名帐户,除非你需要它们。

相关内容