解决navicat、本地、远程无法登录阿里云的mysql总结2021-10-18

4 篇文章 0 订阅
2 篇文章 0 订阅

解决navicat、本地、远程无法登录阿里云的mysql总结

问题1:项目无法通过远程连接阿里云的mysql。

本地登录可以,但是远程登录却报错

Host is not allowed to connect to this MySQL server

先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:

在装有MySQL的机器上登录MySQL mysql -u root -p密码
执行use mysql;
执行update user set host = ‘%’ where user = ‘root’;这一句执行完可能会报错,不用管它。
执行FLUSH PRIVILEGES;
经过上面4步,就可以解决这个问题了。

问题2:项目可以远程访问阿里云的mysql,但是本地无法访问

我的照着上面的修改完后,发现本地的navicat无法连接阿里云的mysql了,本地通过xshell连接阿里云的linux,也无法通过连接mysql,直接在阿里云通过密码也无法登录mysql。显示被拒绝。

出现这个错误的原因可能有很多:
1、账号或密码不对。
2、没有权限:

  • a.端口3306是否被防火墙挡住了
  • b.ip是否被防火墙或者mysql的权限系统禁止了。

3、要注意localhost和127.0.0.1是两个不同的主机。
4、是否有密码。----------------我遇到的错误。**

因为mysql登录权限的这个问题,耗费了我两个小时来解决。

那么,如果再次遇到这个问题应该怎么解决呢?

我觉得最重要的是要认识mysql库下的user表。也就是下面的这张图。
在这里插入图片描述

use mysql;
select user,host,password from user;

这张表就是管理登录密码和权限的表。user是登录的账户,host表示可以登录的主机,localhost表示本机,127.0.0.1也是表示主机,但是他们是不互通的,%表示所有的ip主机都可以登录。password是密码。

可以看到上图中第一行的password是有一串字符串的,表示的是密码。
而其他行的密码都是空的,则表示不需要密码就可以登录。如果这些不需要密码的主机在登录时有密码,那么就会登不进。这也是我今天遇到的问题。只需要不输入密码就可以登录进去了,当然最好是要有密码。所有给root用户的对应的主机localhost添加密码,然后就可以通过密码登录了。
这是添加,密码后的状态:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值