我正在尝试在我的计算机上设置一个 mysql 服务器。我想限制它监听连接的域。我的理解是,您可以让它监听 1 个 IP 或所有 IP。因此,如果我想远程连接,我必须说所有 IP。然后我想阻止所有域,但我知道应该连接的域。我相信这是通过 Windows 防火墙完成的。但是,我如何通过域而不是 IP 来做到这一点?
答案1
user@host
在 mysql 中,用户以通配符的形式存储%
,所有不匹配的主机默认被阻止。通常在安装时只root@localhost
创建帐户,通常没有密码。
您可以按照以下形式定义用户:
--allow login anywhere
CREATE USER 'user'@'%' IDENTIFIED BY 'password';
--allow from hosts in the mydomain.com domain
CREATE USER 'user'@'%.mydomain.com' IDENTIFIED BY 'password';
--allow from hosts in the 123.123.123.0/24 subnet
CREATE USER 'user'@'123.123.123.%' IDENTIFIED BY 'password';
请记住,如果您在两个不同的网络中使用相同的用户名,即:
CREATE USER 'user'@'123.123.123.%' IDENTIFIED BY 'password1';
CREATE USER 'user'@'213.213.213.%' IDENTIFIED BY 'password2';
他们的密码是完全分开管理的。
如果您需要比这更精细的控制,那么您将需要使用防火墙。
您可以通过运行以下命令查看现有用户:
USE mysql;
SELECT * FROM users;