相关问题:
在用自己电脑连接另一台电脑上的虚拟机遇到了一些问题:
如何通过本地电脑上的Navicat等图形化工具连接另一台电脑上中虚拟机上的数据库?
如何通过本地电脑上的IDEA配置数据库url连接到另一台电脑上虚拟机中的数据库成功拿到数据?
如何访问云服务器中的虚拟机上的软件(数据库)?
配置:电脑A、电脑B、安装在电脑B上的虚拟机(CentOs7)
在此配置上已经完成了相关软件的安装:虚拟机、数据库等,下面解析遇到的问题
问题一:电脑A如何远程连接电脑B中虚拟机里的数据库?
首先打开电脑B上的VMware 点击编辑栏中的虚拟网络编辑器
选择VMnet8模式
点击右小角的更改设置 会提示需要管理员权限,点击允许即可
打开后还是选择到VMnet8模式 ,再点击更改设置,注意一定要选择VM8模式下
在点击NAT设置:设置相应的参数
在打开后的界面中点击添加按钮,显示下图:
如下图示例:
注意这里的虚拟机ip地址需要自己去查看:
在打开的虚拟机界面输入 ip addr 查看虚拟机ip地址
ip addr
重要点:这里是把虚拟机里CentOs7 Linux中的22端口映射到主机端口22, 虚拟机端口必须指定为22(远程连接端口),主机端口可以不指定为22,建议还是映射相同端口。
这里配置完了之后,就完成了电脑B的22端口和CentOs7的22端口映射,访问电脑B的22端口即可访问到电脑B中的虚拟机上的CentOs7 Linux服务
此时还差一步,电脑A就可以通过远程连接工具finalShell、XShell等连接到电脑B上的虚拟机
还需要把电脑B的端口22开启 ! ! !
没有开启22端口的话,默认会被电脑B上的防火墙拦截到,从而无法访问
打开电脑B上的控制面板:windows直接搜索控制面板
选择系统和安全
点击Windows Defender防火墙
点击高级设置:
在打开的界面点击入站规则,再新建规则
选择端口
在特定本地端口输入22
一直下一步,最后任意给此端口取个名字
完成即可
设置完成电脑B的22端口开放之后,电脑A可以用远程连接工具(finalshell、xshell等)连接电脑B上的虚拟机,输入相应的ip和端口号即可连接,注意此时连接电脑B上的虚拟机输入的是电脑B的ip和22端口,因为此时电脑B的22端口可以连接到虚拟机,账号密码还是登录虚拟机的账号密码。
在完成电脑A和电脑B的虚拟机互联之后,可以通过电脑A上的Navicat(其他工具也可)连接虚拟机上的数据库,前提是需要开启虚拟机上的数据库服务
在Navicat新建Mysql连接,在弹出的窗口选择SSH:
在SSH这一栏 需要填写电脑B(部署虚拟机的主机)的IP ,端口为映射的虚拟机22端口(注意:这里填的端口是电脑B与虚拟机映射的端口22,是电脑B的22端口,如果在映射的时候不是用电脑B的22端口和虚拟机的22端口进行映射的话,需要根据映射的端口填写,如端口映射的时候电脑B的端口是用的100端口和虚拟机的22端口映射,那么这里填的是100端口),账号密码为登录虚拟机需要的账号和密码
在常规设置里填写虚拟机的ip、端口号、数据库的账号密码:
最后可以测试连接
此时可以通过电脑A上的Navicat工具对电脑B里面的虚拟机中的数据库进行操作了
问题二:通过本地电脑上的IDEA配置数据库url连接到另一台电脑上虚拟机中的数据库
在虚拟机连接完成之后,通过IDAE操作数据库时也存在一点小问题,当配置数据源url时,地址的填写有一点变化,
这里的URL:主机i和端口号应该为电脑B的主机ip和端口号,不能是虚拟机的ip和端口号,我们需要再次做一个端口映射,将虚拟机的3306端口映射到电脑B的端口上,通过连接电脑B上的端口从而访问到虚拟机中的数据库,如何配置端口映射参考问题一中的端口映射配置,同时记得打开电脑B映射的端口号,下面给一个例子:
我们将虚拟机的3306端口映射到电脑B的3306端口,映射完成之后,开启电脑B3306端口,在电脑B的防火墙中添加一个入站规则 设置端口号为3306,表示开放3306端口,完成之后,在IDEA中的url配置添加电脑B的ip和映射的虚拟机数据库端口,假设电脑B的ip为192.168.1.12,上述映射的端口是3306,那么url配置中:jdbc:mysql://192.168.1.12:3306/数据库名
完成之后即可通过IDEA连接到电脑B中的虚拟机上的数据库,从而进行增、删、查、改操作
问题三:访问云服务器中的虚拟机上的软件
这里以阿里云ESC为例,访问阿里云服务器上的数据库,前提条件是该云服务器上数据库都已经配置好了
首先我们需要关闭云服务器上虚拟机中的防火墙:
//永久关闭防火墙 推荐这种
systemctl disable firewalld
//暂时关闭防火墙
systemctl stop firewalld
//或者不关闭防火墙 开放指定的端口如数据库端口3306
//开放3306端口,如需开放其他端口也是一样的操作 只需修改端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent
推荐直接关闭防火墙,关闭之后我们来到阿里云ESC控制台
点击安全组名字进入管理页面:
点击快速添加:添加你想要开放的端口号
这里我们开放3306就可以了,如果有需要可以在开启其他的,到这里就已经全部完成了
也可以通过IDEA来访问云服务器上的数据库