视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
解决mysql数据库无法被其他ip访问的情况
2020-11-09 08:49:41 责编:小OO
文档


这篇文章主要给大家介绍了关于mysql数据库无法被其他ip访问的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

前言

还是之前说的项目,环境目前已经准备好了,项目准备验证阶段发现了一个问题,从上层应用输入鉴权访问应用,一直在等待状态,输入了正确的用户名及密码,却无法访问。看起来像是没办法访问到数据库连接的意思。

mysql部署后的端口一般都是3306,尝试去ping和telnet 3306端口,发现ip可以ping通,但是3306端口无法被telnet,并且给出了一个这样的报错:

ERROR 1130: Host *.*.*.* is not allowed to connect to MySQL

看到这个错误后,上网一查,基本上有挺多解决方案,但是为什么还要专门写一下呢?

答案是:网上很多都是mysql 5.6的解决方法,在5.7里,这个错误解决方法如下:

1.在第一次登陆mysql后,需要及时修改root的密码,这里5.6和5.7有一个差异,那就是5.6的密码字段为:password,但是在5.7版本里,这个字段被取消了,取而代之的是:authentication_string字段。

正确的修改方法为:

update user set authentication_string=password("xxxx") where user = "root";
flush privileges;

2.修改好了之后,我们用use mysql命令切换到mysql库里,注意,这个mysql库在mysql里是真是存在的,存放一些db相关信息的库。

命令:use mysql;

3.找到users表,执行如下命令:

grant all privileges on *.* to 'root'@'%' identified by 'JLwg!2017' with grant option;

网上关于这块的修改方法很多,应该一共有4种,我用的是其中一种。

这个命令的意思是,修改root用户的访问权限,让所有ip都可以访问这个用户,这样一来的话,我们的应用就可以从外部ip访问这个mysql了,不然只有localhost可以访问,很不方便。

4.最后执行flush privileges;命令,重启Mysql服务,应用顺利登陆成功

下载本文
显示全文
专题