我知道这个命令:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
但是它只允许我授予特定的IP地址访问这个远程MySQL数据库。如果我想让任何远程主机都可以访问这个MySQL数据库呢?我该怎么做?基本上我要把这个数据库公开,让每个人都能够访问它。
我知道这个命令:
GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';
但是它只允许我授予特定的IP地址访问这个远程MySQL数据库。如果我想让任何远程主机都可以访问这个MySQL数据库呢?我该怎么做?基本上我要把这个数据库公开,让每个人都能够访问它。
我看到有很多答案,但它们都相当冗长,除了被接受的答案之外,它相当简短且缺乏解释。由于我无法编辑它,因此我正在添加我的答案。Adit问:
将此数据库公开以便每个人都可以访问
GRANT ALL PRIVILEGES
ON database.*
TO 'username'@'remote_host'
IDENTIFIED BY 'password';
TO 'username'@'yourremotehost'
更改为TO 'username'@'%'
来允许用户从任何远程主机连接到MySQL。
因此,授予用户从任何远程主机连接权限的纠正查询为:
GRANT ALL PRIVILEGES
ON database.*
TO 'username'@'%'
IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.*
TO 'root'@'%'
IDENTIFIED BY 'password'
WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
USERNAME
和PASSWORD
替换为您的MySQL用户名和密码。此命令将授予用户USERNAME
来自任何IP地址的所有权限。
%
替换为您要授予访问权限的IP地址:GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
1.2.3.4
替换为您想要授予访问权限的 IP 地址。
如果您想要从多个 IP 地址授予访问权限,可以多次运行该命令并使用不同的 IP 地址。
最后,运行以下命令来刷新权限:
FLUSH PRIVILEGES;
skip-grant-tables