本地连接虚拟机MySQL提示is not allowed to connect

本地连接虚拟机MySQL提示is not allowed to connect,第1张

概述本文将解决本地Navicat连接远程MySQL服务器提示不允许连接。一、问题还原本地Navicat连接centos7.3虚拟机的MySQL数据库确认连接后会报出一个这样的错误二、发现问题这个问题一看就是远程连接的问题,但是新学习的小伙伴估计就很难想到是这方面的问题,接下来咔咔一步一步的帮助解决这个问题。首先我们来到虚拟机终端,连接上MySQL。执行命令mysql -uroot -p,然后输入密码,进入到MySQL执行指令show databases;可以查看到目前所有的数据库我.

本文将解决本地Navicat连接远程MysqL服务器提示不允许连接。

一、问题还原

本地Navicat连接centos7.3虚拟机的MysqL数据库

确认连接后会报出一个这样的错误

二、发现问题

这个问题一看就是远程连接的问题,但是新学习的小伙伴估计就很难想到是这方面的问题,接下来咔咔一步一步的帮助解决这个问题。

首先我们来到虚拟机终端,连接上MysqL。

执行命令MysqL -uroot -p,然后输入密码,进入到MysqL


执行指令show databases;可以查看到目前所有的数据库


我们主要需要关注的是MysqL这个库,切换数据库,执行命令use MysqL,在MysqL的这个数据库里边有一个user表。


在这里说一个小小的点,在终端我们以往执行clear就可以清屏,但是在MysqL中执行clear是没有作用的。

在MysqL终端清屏指令是system clear

好了,回归正题,在user表中,我们只需要俩个信息,一个是hos一个是user。我们需要执行查询语句给查询出来。


在上图中,host列指定的是允许用户登录的ip,如果为localhost那就只能本机登录,远程是登录不了的。

这也就是为什么我们本地navicat连接MysqL无法连接的原因。

由于是本地的虚拟机不存在安全问题,所以咔咔将会把host设置为%

% 代表通配符,代表这所有的连接都可以,不限制任何ip。

注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置;

问题已经找到,接下来就去解决它。

三、解决问题

执行指令update user set host='%' where user='root';,将localhost修改为%,允许让所有ip连接。


到这里还需要进行一次权限刷新flush privileges

本地navicta再次连接数据库。这个时候就可以了。

四、扩展

关于flush privileges在什么时候需要执行。

这个命令是将user和privilege表中的用户信息或者权限从MysqL库中提取到内存中。

当用户数据和权限出现修改后,不想重启数据库的情况下就想直接生效,就需要执行这个指令。

也就是说这个指令只针对于用户数据和用户权限修改的情况下。

总结

以上是内存溢出为你收集整理的本地连接虚拟机MySQL提示is not allowed to connect全部内容,希望文章能够帮你解决本地连接虚拟机MySQL提示is not allowed to connect所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1151601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存