MySQL远程访问,也就是通过ip访问MySQL服务,MySQL对于安全的要求是非常严格的,需要授权。
MySQL数据库赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户
1.本地访问
1.GRANT ALL PRIVILEGESON *.* TO admin@localhost IDENTIFIED BY 'admin' WITH GRANT OPTION ;
2.FLUSH PRIVILEGES;
2.远程访问
如果数据库服务器与应用服务器物理层面分割,也就是不在同一台服务器的时候,我们需要通过ip方式访问,这个ip就是数据库服务器主机IP。
2.FLUSH PRIVILEGES;
1.GRANT ALL PRIVILEGESON *.* TO admin@192.168.100.1 IDENTIFIED BY 'admin';
2.FLUSH PRIVILEGES;
3.任意访问
如果不限制ip访问,授权某个用户可以以任意ip访问该服务,可以这样写:
1.GRANT ALL PRIVILEGES ON *.* TO admin@'%' IDENTIFIED BY 'admin';
2.FLUSH PRIVILEGES;
注意单引号!
4.取消授权
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
1.REVOKE ALL ON *.* FROM admin@192.168.100.1;
2.FLUSH PRIVILEGES;
5. 查看 MySQL 用户权限
查看当前用户(自己)权限:
show grants;
查看其他 MySQL 用户权限:
show grants for dba@localhost;
6.MySQL grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
2. 如果想让授权的用户,也可以将这些权限 MySQLgrant 给其他用户,需要选项 “grant option“
grant select on testdb.* to dba@localhost with grant option;