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库中提取到内存里。