mysql 允许远程IP访问配置

 

 

MySQL远程访问,也就是通过ip访问MySQL服务,MySQL对于安全的要求是非常严格的,需要授权。 

 

 

grant语法

grant 权限名(所有的权限用all) on 库名(*全部).表名(*全部) to ‘要授权的用户名’@’%’(%表示所有的IP,可以只些一个IP) identified by “密码”;

身份检查使用user表(Host, User和Password)3个范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。

在user表Host值的指定方法:

* Host值可以是主机名或IP号,或’localhost’指出本地主机。

* 你可以在Host列值使用通配符字符“%”和“_”。

* Host值’%’匹配任何主机名,空Host值等价于’%’。它们的含义与LIKE操作符的模式匹配操作相同。例如,’%’的Host值与所有主机名匹配,而’%.mysql.com’匹配mysql.com域的所有主机。

 

 

1.本地访问 

Sql代码    收藏代码
  1. GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'admin' WITH GRANT OPTION;   
  2. FLUSH PRIVILEGES;  



上述命令的意思是为admin用户授权,以localhost方式访问数据库,密码为admin,这是我们推荐的访问方式,不直接暴露IP,提高数据库服务器的安全性。 

2.远程访问 
如果数据库服务器与应用服务器物理层面分割,也就是不在同一台服务器的时候,我们需要通过ip方式访问,这个ip就是数据库服务器主机IP。 

Sql代码    收藏代码
  1. GRANT ALL PRIVILEGES ON *.* TO admin@X.Y.Z.W IDENTIFIED BY 'admin' WITH GRANT OPTION;   
  2. FLUSH PRIVILEGES;  



当然,这里授予admin用户WITH GRANT OPTION权限,欠稳妥!如果一个用户从远程登录修改了数据库表结构等等,是非常有风险的! 

通常不建议授予授予其他用户权限权力,即: 

Sql代码    收藏代码
  1. GRANT ALL PRIVILEGES ON *.* TO admin@X.Y.Z.W IDENTIFIED BY 'admin';   
  2. FLUSH PRIVILEGES;  



3.任意访问 
如果不限制ip访问,授权某个用户可以以任意ip访问该服务,可以这样写: 

Sql代码    收藏代码
  1. GRANT ALL PRIVILEGES ON *.* TO admin@'%' IDENTIFIED BY 'admin';   
  2. FLUSH PRIVILEGES;  



注意单引号! 

3.取消授权 
当然,有授权,就一定有取消授权: 

Sql代码    收藏代码
  1. REVOKE ALL ON *.* FROM admin@X.Y.Z.W;   
  2. FLUSH PRIVILEGES;  

 

 




OK,现在我们可以开始部署我们的应用了! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值