虚拟机模拟服务器环境相关问题

这两天遇到了比较大的挑战,项目代码已经写好并且试运行,在实际部署到客户服务器方的时候,由于客户服务器系统环境、插件、网络等等的不一样,导致Debug文件在部署的时候,容易出现各种各样的情况,毕竟原来的开发环境是在我的windows 10+vs2012上面开发的,当你把你的程序放到一些比较老的服务器系统上的时候就会出现一些问题,这时候你需要去调试服务器,来让你程序能适应在目标机器上。

前两天关于Access数据库中实时更新到mysql那个程序,要部署到一个老得不能再老的windows xp系统上,由于是10多年前的产物,而且客户服务器组不能连接外网,所以大量的环境插件缺失和操作系统不匹配,导致程序无法打开。

关于OPC工具的一个项目是在另外一台windows server 2008 r2服务器上,部署的时候也是出现了很多问题,例如dll加载,缺少微软service pack 2(3)等等问题。

我想到的解决方法,就是在我本机上,用虚拟机安装客户服务器上的操作系统和环境,模拟对方环境,这样再编译出来代码程序,我再拷贝到那边就可以少去一部分环境异常,例如我本机本来是win 10+vs2010,对面机器是windows xp,那我就开一个虚拟机,跟它的操作环境一摸一样,在虚拟机里装一个vs2010,vs2010是支持xp的,代码复制过去之后,编译一下,然后再拿到程序。

今天说一下xp那个系统的模拟吧,目前已经成功。


这是虚拟机设置,处理器要是嫌慢可以加一个,不过是XP而已,无所谓,值得一提的是网络环境那边,网络适配器,右面有三种


桥接模式、NAT模式、仅主机模式、自定义,LAN区段你也可以自己设置。一般常用的就是NAT和仅主机了,NAT是跟主机共享一个IP地址的,但是互相之间可以ping,仅主机模式是互相ping不通的,我这个代码要通过在虚拟机里运行,更新我本机上的mysql数据库,所以我必须要能链接到本机的mysql。

一开始我在虚拟机里能ping通我的本机ip,但是代码在vs2010里面运行的时候,字符串报错,就是说连不上mysql,我找不到问题,因为我觉得既然能ping通,那为啥还打不开我本机的数据库,然后我想起来,虚拟机能ping通主机,那主机能ping通虚拟机吗?赶忙一试,果然,主机ping不同虚拟机,这明显就是虚拟的里面的防火墙把ping关掉了,关掉虚拟机里防火墙之后,报错

Host "DESKTOP-PURAOJPWEE" is not allowed to connec to this MYSQL server

这明显就是说没有权限,DESKTOP-PURAOJPWEE这是我的主机名称。

方法就是去mysql里面,把你这个mysql用户,权限修改一下,允许远程访问就行了。方法如下:

1.打开cmd命令行

2.执行mysql -u root -p   输入密码之后进入mysql

3.执行use mysql

4.执行update user set host='%' where user ='root'(原本只为localhost就是说只有主机能打开,禁止远程)

5.执行flush privileges

这执行完这些操作后,所有root的用户的mysql权限都开放了。

解决了mysql连接问题后,程序没问题,跑起来了,各项功能也都正常。


还有个问题值得一起,一开始我下载的windows xp是:


这个版本的,没有带任何的microsoft service pack,这个版本下,只有最基础的操作系统功能,貌似所有的程序都不能签名,我尝试了几次后发现什么也安装不了,后面就换成了:


这个版本,with service pack 3,然后才成功安装了各种程序包括vs2010和各种插件。看来部署的时候还是要提前下载好微软的系统包,到那边如果客户服务器系统不含微软系统包的话要给它加上去,毕竟不能动人家原来的系统,只能加上我们需要的环境和插件程序等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值