MySQL - 为什么有三个具有不同主机的根用户?

MySQL - 为什么有三个具有不同主机的根用户?

我很想知道为什么当你第一次在服务器上安装 MySQL 时,root用户表中会输入三个用户,每个用户都有不同的主机地址。一个带有,localhost一个带有127.0.0.1,一个带有::1(针对 IPv6)。

我不太明白为什么这三个都是必需的。删除root@localhost&root@::1并只保留[email protected]访问权限是否会增强安全性?这样做是好事还是坏事?如果不是,其他主机地址有什么用?

注意:我在基于 ubuntu 的服务器上运行 MySQL。

答案1

对于 MySQL 而言,来自 127.0.0.1 的连接与来自 ::1 的连接不同,因此如果您想从任一协议访问服务器,都需要允许它。localhost 条目用于允许通过套接字连接而不是 tcp 连接进行连接,因此

mysql -h 127.0.0.1 -u user -p
mysql -h ::1 -u user -p
mysql -h localhost -u user -p 

都是不同的连接。使用

mysql -h localhost  -u user -p -e 'show full processlist\G;'
...
User: user
Host: localhost
...

mysql -h localhost  --protocol=tcp -u user -p -e 'show full processlist\G;'
...
User: user
Host: localhost:60249
...

注意端口号 60249,它表明这是一个 TCP 连接。

相关内容