上篇博客中讲述了Linux中mysql实现远程访问,其实原理是一样的,这篇博客中稍有补充:
- 为特定数据库添加用户(该用户连接数据库时,只显示该数据库)
- 为该用户设置特定权限(比如该用户只能对该数据库进行增删改查,不能进行其它操作)
1.进入mysql
mysq -u root -p
2.输入密码
3.为指定数据库添加特定权限的用户
GRANT SELECT, INSERT, UPDATE, DELETE ON 指定数据库名.* TO '用户名'@'localhost'IDENTIFIED BY '密码';
4.切换到指定数据库下
mysqluse mysql;
5.查看用户
select host,user from user;
可以看到,多了一个你添加的用户,但它的权限host是localhost
6.为刚添加的用户设置远程,即host为所有%
GRANT SELECT,INSERT,UPDATE,DELETE ON shop.* TO 'userTest'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
6.取消远程控制
update user set host='localhost' where user='用户名';
7.删除用户
delete from user where user="用户名" and host='host权限(localhost/%)';
此时远程已设置到,提示也成功了,但是别人还是连接不上,是因为防火墙的原因,解决办法两种:
- 关闭防火墙
- 开放3306端口
【开放3306端口】
- 入栈:别人访问你的权限
- 出战:你访问别人的权限
1.控制面板—系统和安全—windows防火墙—攻击设置—入栈规则
2.新建规则—选择端口
3.指定开放的端口
4.允许连接,一直点下一步即可