我正在尝试使用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)?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)