如何使用Vagrant连接两个VM(postgreSQL和tomee)?

如何使用Vagrant连接两个VM(postgreSQL和tomee)?,第1张

概述如何使用Vagrant连接两个VM(postgreSQL和tomee)?

我正在尝试使用VirtualBox和Vagrant构build一个虚拟环境。 目标是能够从PC浏览器访问运行在虚拟机“服务器”上的应用程序,该应用程序与虚拟机“db”交互。

我设法创build了虚拟机。

第一个与Apache Tomee运行,我可以通过我的浏览器访问它。 它工作正常。

第二个是Postgres运行,我可以通过我的浏览器访问它。 它也能正常工作。

当我尝试连接虚拟机“服务器”与“数据库”我得到一个@R_403_6822@ 500错误(只有当我尝试一些数据库 *** 作与应用程序),特别是:

“连接到本地主机:2222拒绝。检查主机名和端口

是正确的,并且postmaster正在接受TCP / IP连接。

javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)”

我testing了两台机器从PC浏览器,他们工作正常(事实上在数据库机器,我看到对象添加)。

这是Vagrantfile:

config.vm.define "server" do |node| node.vm.hostname = "server" node.vm.network "private_network",ip: "10.12.1.101",virtualBox__intnet: true [...] node.vm.network "forwarded_port",guest: 22,host: 2211,ID: 'ssh',auto_correct: true node.vm.network "forwarded_port",guest: 8080,host: 2212 node.ssh.forward_agent = true [...] end config.vm.define "clIEnt" do |node| node.vm.hostname = "clIEnt" node.vm.network "private_network",ip: "10.12.1.201",host: 2221,guest: 5432,host: 2222 end

在文件tomee.xml目前在apache-tomee / conf我指定了相同的代码为db连接我用在testing(工作正常的虚拟环境)

<tomee> <Resource ID="Postgresql Database" type="DataSource"> JdbcDriver org.postgresql.Driver JdbcUrl jdbc:postgresql://localhost:2222/music Username postgres Password postgres JtaManaged true DefaultautoCommit false </Resource> </tomee>

在数据库虚拟机我修改postgresql.conf和pg_hba.conf添加

Listen_addresses ='*'

在第一和

主机全部全部为0.0.0.0/0 md5

在第二。 我不明白为什么当我的电脑上运行我可以访问这两个虚拟机,但'服务器'无法沟通'数据库'。

这是数据库虚拟机上的“sudo netstat -tulpn | grep postgres”的输出

tcp 0 0 0.0.0.0:5432 0.0.0.0:* ListEN 5743 / postgres


tcp6 0 0 ::: 5432 ::: * ListEN 5743 / postgres

将localhost更改为托管虚拟机的计算机的IP(您有来自主机的访客的端口转发)。 或者使用桥接网络,并直接从客户端连接到服务器。

总结

以上是内存溢出为你收集整理的如何使用Vagrant连接两个VM(postgreSQL和tomee)?全部内容,希望文章能够帮你解决如何使用Vagrant连接两个VM(postgreSQL和tomee)?所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/langs/1156397.html

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

发表评论

登录后才能评论

评论列表(0条)

保存