首页 > 数据库学习 > SQL > MySQL开放外网访问权限
2019
07-10

MySQL开放外网访问权限

mysql 开放外网访问权限的方法

1、配置mysql的配置文件中参数skip-networking和bind-address并重启mysql服务。

skip-networking:关闭MySQL的TCP/IP连接方式,只能本机连接,注释掉该参数即可开启TCP/IP连接

bind-address:设定mysql服务器只回应哪些指定ip地址的请求,注释掉该参数或设置为0.0.0.0都表示允许所有IP地址

2、创建要远程访问的用户并设置权限

INSERT INTO `mysql`.`user`(`Host`,`User`,`Password`,`Select_priv`,`Insert_priv`,`Update_priv`,`Delete_priv`) VALUES('%','testuser',PASSWORD('mima'),'Y','Y','Y','Y');

Host的值设置为%表示允许所有IP远程连接,设置指定IP则只能指定IP远程连接。

如果是已经存在的用户则修改对应列的值

UPDATE `mysql`.`user` `Host`='%' WHERE `User`='testuser';

3、更改用户对应某些库的远程权限

GRANT ALL PRIVILEGES ON 库名.表名 TO '用户名'@'IP地址' IDENTIFIED BY '密码' WITH GRANT OPTION;

    库名:允许远程访问的数据库名称,所有的数据库使用“*” 
    表名:允许远程访问的数据库下的表的名称,所有的表使用“*” 
    用户名:要赋给远程访问权限的用户名
    IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%” 
    密码:要赋给远程访问权限的用户对应使用的密码

上面都命令表示允许指定都用户通过指定都ip使用指定的密码远程连接某个指定的数据库或数据库表。

4、重启mysql服务或使用flush privileges命令更新用户权限

flush privileges命令

MySQL用户数据和权限(mysql数据库中的user表)修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。命令本质上的是将当前用户信息及对应的权限设置(information_schema数据库的USER_PRIVILEGES表)从mysql库中提取到内存里。

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。