安全地将多个 MySQL 用户合并到 %

Safely merging multiple MySQL users to %

最近在 Linux 机器上管理我的 MySQL (5.5.41) 并决定 remove/merge MySQL 最初创建 root 用户。

引用 MySQL 5.5 documentation (also nice article here)

On Unix, each root account permits connections from the local host. Connections can be made by specifying the host name localhost, the IP address 127.0.0.1, the IPv6 address ::1, or the actual host name or IP address.

usertable如下

+-----------+------------------+-------------------------------------------+
| Host      | User             | Password                                  |
+-----------+------------------+-------------------------------------------+
| localhost | root             | *ABC...                                   |
| lamp      | root             |                                           |
| 127.0.0.1 | root             | *ABC...                                   |
| ::1       | root             |                                           |
| localhost | john             | *EFG...                                   |
| lamp      | john             |                                           |
| 127.0.0.1 | john             | *EFG...                                   |
| ::1       | john             |                                           |
+-----------+------------------+-------------------------------------------+

它也被设置为只监听本地主机bind-address = 127.0.0.1。问题是

首先,我建议您避免使用 % 通配符(如果不是绝对必要的话)。如果您的用户从 mysql 服务器 运行 所在的同一主机连接到数据库,我的建议是使用 127.0.0.1

所有最佳实践都指出应禁用无密码登录。

至于 IPv6,如果您不使用该用户,则没有任何意义。

我建议你阅读这篇文章http://www.greensql.com/content/mysql-security-best-practices-hardening-mysql-tips