解决VirtualBox中的MySQL数据库,Mac无法访问的问题(通过端口映射的方式)

Virtualbox默认使用NAT来做网络连接的,访问外网比较方便,但是纯NAT模式下,宿主机不能访问虚拟机。开发过程中有时候会用到虚拟机,这里有个简单有效的解决方法就是用VirtualBox的“端口映射”功能。
配置如下:
1.打开VirtualBox的偏好设置,设置host_only网络,默认是192.168.56.1;
这里写图片描述
这里写图片描述
2.对virtualBox中的设置进行配置=>选中网络地址转换(NAT)=>点击端口转发=>配置主机IP,端口号和子系统IP,端口号(这里的主机端口可以和子系统端口不一致,比如以上图的MySQL为例,如果把主机的端口配置为3307的话,那么从外网访问虚拟机的MySQL数据库地址就是192.168.56.1,端口就是3307,虚拟机会自动转发给子系统中的3306端口。):
这里写图片描述
这里写图片描述
3.mysql客户端测试连接:
这里写图片描述
4.我在连接中一直出现:ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用户权限问题;这里需要我们配置虚拟中MySQL的远程权限(这个处理只针对虚拟机中的系统是Windows系统的解决方案,具体操作详情链接:这里写链接内容):
这里写图片描述
5.以上配置之后还是会出现多次的连接超时现象:
can’t connect to mysql server on ‘XXX.XXX.XX.X’ (10060 Operation Timeout)这种问题的出现,我的解决办法如下,
virturalBox =>偏好设置=>网络=>红色框框中不要选中:
这里写图片描述
6.以上设置后,还是会出现无法连接超时,拒绝连接等状况,我的解决办法是:
1).在虚拟机和真机中ping 192.168.56.1,看看两边是否能通;如果不能通:virturalBox =>偏好设置=>网络=>红色框框中选中点击确认,然后再ping;此时两边再ping我就能ping通了;
2).在真机中用Navicat for mysql测试连接MySQL数据库,我这里出现的状况是出现虚拟机拒绝连接(61 connect refused),此时解决办法是:virturalBox =>偏好设置=>网络=>红色框框中不要选中;此时再在虚拟机和真机中ping 192.168.56.1,看看是否能ping通,如果可以,重启虚拟机,关闭您的Navicat;
3)重启后再在虚拟机和真机中ping 192.168.56.1,此时我的虚拟机也是能ping通的,重新打开您的Navicat,然后再连接,此时就连接成功了;
我的发现:虚拟机和真机端口映射,有一个缓存时间,就是说,你开机后真机和虚拟机无法自动进行IP映射,此时您可以通过ping IP来检测什么时候已经完成了IP映射,当ping通后,可能端口映射还没有映射上去,所以您再重启您的电脑试试,再ping,再用Navicat尝试,就能成功,当您配置好后,如果出现Navicat连接超时的状况就多尝试,之前弄过的,再还原,再ping,直到成功为止;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值