Linux下配置mysql允许指定IP远程访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下配置mysql允许指定IP远程访问相关的知识,希望对你有一定的参考价值。

一、Mysql允许指定IP远程访问


1、登录

mysql -u root -p
之后输入密码进行登陆


2、查看用户表 
首先要先指定使用mysql数据库,然后再进行查询操作

//进入mysql数据库mysql> use mysql
myql> select Host,User from user;

下面的列表就是查询user表后可以访问数据库的指定的Ip地址 

技术分享图片


3、权限设置及说明

3.1、使用grant all privileges on来更改用户对应某些库的远程权限

语法模板

grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;

flush privileges;

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


3.2、示例:更新/授权用户表

//更新用户表
mysql> update user  set Host = '%' where Host = 'localhost' & user = 'root'; 
或
mysql> UPDATE `user` SET `Host` = '10.42.*.*' where `Host` = '10.42.*.*' & user = 'root';

//授权用户表,添加远程ip访问权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.40.21.12' IDENTIFIED BY 'FJay' WITH GRANT OPTION;

mysql> flush privileges;


10.42.*.*是允许远程访问的IP的值,root是账户名,后面的password是密码。 
即,允许来自10.42.*.*的连接并使用root账户和password这个密码进行访问。 

10.40.21.12是内网的一个地址,这个是允许远程访问的IP的值。自行改为其他值。
root是账户名,后面的FJay是密码。
即,允许来自10.10.11.12的连接并使用root账户和FJay这个密码进行访问。
ALL PRIVILEGES ON 后面的*.*表示所有数据库,即完全访问权限,可以指定为特定数据库。
而IP这里,可以使用%来表示所有IP。
第二行是使设置立刻生效。


示例: 

只允许192.168.1.105这个地址登录访问,只能访问testwa这个库里面的所有表,

且只能用root账户及123uupp这个密码进行访问

grant all privileges on testwa.* to 'root'@'192.168.1.105' identified by '123uupp' with grant option;


二、Mysql取消IP访问限制


1、撤销已经赋予给 MySQL 用户权限的权限。

revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:

grant all on *.* to [email protected] identified by 'just123' with grant option;
revoke all on *.* from [email protected];


2、如果需要禁止远程用户,删除即可

drop user [email protected]%;
drop user [email protected];


以上是关于Linux下配置mysql允许指定IP远程访问的主要内容,如果未能解决你的问题,请参考以下文章

linux下mysql允许外部远程访问配置

Linux系统下实现远程连接MySQL数据库的方法教程

linux 与window访问

配置redis外网可访问,并只允许指定的ip可访问redis

怎么设置才能让外网ip可以访问mysql数据库?

怎么设置才能让外网ip可以访问mysql数据库