解决虚拟机安装MySQL后Navicat无法连接的问题

背景

在本地主机上安装了Ubuntu20虚拟机,随后在虚拟机上安装了MySQL数据库,在虚拟机上访问一切正常。但是在本地主机上使用Navicat连接始终连接不上。

解决

1.MySQL账户默认访问权限

mysql默认是只能在本机上进行访问的,因此在安装好数据库之后,需要对账号进行授权,把需要进行远程登录的账号进行授权,命令如下:

// 授权
> GRANT ALL PRIVILEGES ON . TO ‘用户名’@‘%’ IDENTIFIED BY ‘密码’ WITH GRANT OPTION;
// 刷新权限
> flush privileges;

执行完以上命令之后,通常就可以正常连接了。

2.MySQL配置文件

如果以上操作之后还是连接失败,则可能是配置文件的问题了。由于我是通过Ubuntu的apt工具安装的MySQL,因此我的配置文件实际上是在/etc/mysql/mysql.conf.d/目录下,在/etc/mysql/mysql.cnf文件中的实际内容如下:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

找到真正的配置文件/etc/mysql/mysql.conf.d/mysql.cnf,修改其中的bind-address配置为0.0.0.0,修改完成之后使用service mysql restart重启MySQL服务使配置生效。
为了验证配置是否生效,使用sudo netstat -lntp | grep 3306命令查看:
在这里插入图片描述
可以看到3306端口前面已经变成了0.0.0.0,原来是127.0.0.1,此时再次尝试连接。

3.虚拟机网络配置

以上方法都尝试过了,发现还是不行,通过ifconfig查看虚拟机IP,发现和平时的192的本地IP不一致,感觉可能是虚拟机的网络出了问题,于是去虚拟机上查看网络配置,发现网络配置的是共享模式(NAT模式),通常我们都是配置的桥接模式,因此改到桥接模式,再通过ifconfig查看IP,发现IP就是192的正常本地IP了,再次尝试连接,问题解决。

共享/NAT模式:虚拟机不能与宿主机进行通信,但是虚拟机可以访问互联网。
桥接模式:虚拟机可以与宿主机进行通信(通常适配器会默认将虚拟机IP与宿主机IP设置到同一网段,如果不能通信则可以手动进行配置),虚拟机也可以访问互联网。
主机模式:虚拟机可以与宿主机通信,但虚拟机不可以访问互联网。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值