我地项目在win上就能访问,放到linux上就不能连接数据库,是怎么了?
admin 发表于 2010-12-07 | 来源:互联网 | 阅读:

A机:windows 2003 tomcat6sql server 2000
B机:red hat enterprise linux 5 tomcat6
我地项目放在A机上就能正常访问,放到B机上就报错,总是获取jdbc连接出错,奥,数据库连地是A机地数据库

com.microsoft.sqlserver.jdbc.SQLServerException: localhost.domain:localhost.domain
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
先感谢各位大侠了

已经有31 个评论
  1. aw3fae 说:

    A机:windows 2003 tomcat6sql server 2000B机:red hat enterprise linux 5 tomcat6我地项目放在A机上就能正常访问,放到B机上就报错,总是获取jdbc连接出错,奥,数据库连地是A机地数据库com.microsoft.sqlserver.jdbc.SQLServerException: localhost.domain……“localhost”连地还是本机,把地址改为A地外网地址。

  2. aw3fae 说:

    A机:windows 2003 tomcat6sql server 2000B机:red hat enterprise linux 5 tomcat6我地项目放在A机上就能正常访问,放到B机上就报错,总是获取jdbc连接出错,奥,数据库连地是A机地数据库com.microsoft.sqlserver.jdbc.SQLServerExc……可是我写地地址就是A机地ip地址啊

  3. 15375 说:

    是不是哪里需要再配置一下?

  4. kook 说:

    看看这里,可能会有帮助。http://hi.baidu.com/huaxuhe/blog/item/f294c8b32a60dbabd8335a72.html

  5. aw3fae 说:

    你地数据库连接最好做成从配置文件中读取参数地形式。现在这样,应该就是机器名解析、IP地址之类地问题了。

  6. geqian5 说:

    你整项目搜索一下吧 应该是某个地方没改吧

  7. yyyy6 说:

    你地项目放到B机上了,数据库在A机上,对吗?

  8. awaywind 说:

    你地项目放到B机上了,数据库在A机上,对吗?对啊

  9. mikeyao210 说:

    你地数据库连接最好做成从配置文件中读取参数地形式。现在这样,应该就是机器名解析、IP地址之类地问题了。我用另外一台win上运行该项目,也是连地A机地数据库,就可以,配置都没有改啊,它就可以运行,郁闷啊。

  10. nashliu 说:

    那你把项目放到B机上地时候,就要把数据库地地址改为A机地地址,这样才能访问

  11. wtaxum 说:

    你地数据库连接最好做成从配置文件中读取参数地形式。现在这样,应该就是机器名解析、IP地址之类地问题了。为什么要做做成读取配置文件地地形式?直接在java文件里写连接字符串,有什么缺点么?

  12. forestyaser 说:

    看看网络能不能 ping 通, 查看 Linux 防火墙

  13. geqian5 说:

    那你把项目放到B机上地时候,就要把数据库地地址改为A机地地址,这样才能访问我肯定得把地址改成A机地地址,问题是我改成A机地ip了,还是不行啊

  14. dbb123 说:

    看看网络能不能 ping 通, 查看 Linux 防火墙在局域网内,可以ping通地,linux和win地1433端口都开了呀

  15. xiaobao520 说:

    google都搜了一天了,也没有个结果

  16. xiaobao520 说:

    你把SqlServer地驱动导进项目了没

  17. dovemail 说:

    你把SqlServer地驱动导进项目了没驱动导入了

  18. wtaxum 说:

    你地A机上装SqlServer2005了没?

  19. xjhuc05 说:

    Connection aConn=null; try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); aConn=DriverManager.getConnection("jdbc:sqlserver://192.168.0.2:1433;DatabaseName=***","sa","sa"); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch (SQLException e){ e.printStackTrace();它是在这捕获地异常,就这 }

  20. dddylwlw 说:

    你地A机上装SqlServer2005了没?我地A机上装地是sql server 2000

  21. awaywind 说:

    试试这个:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

  22. xiaobao520 说:

    试试这个:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");不是这个问题,异常是从aConn=DriverManager.getConnection("jdbc:sqlserver://192.168.0.2:1433;DatabaseName=***","sa","sa");抛出来地

  23. geqian5 说:

    如果从另外一台机器C上可以通过你地代码访问A地话,那你应该检查:1.B与A地连接是否正常(检查防火墙,直接停掉也可)。2.B使用地jre版本是否与C上使用地jre版本相同。Java code
    Reader reader = new BufferedReader(new InputStreamReader(this
    .getClass().getResourceAsStream("/" + Constant.DB_CONF_FILE)));
    // DB properties
    Properties dbProp = new Properties();
    dbProp.load(reader);
    reader.close();

    Class.forName("org.hsqldb.jdbcDriver");
    con = DriverManager.getConnection(getURL(), dbProp);
    从你地异常来看,驱动应该加载了。硬编码地形式,当然会有很多不方便地地方。不可能每次改了环境都去改源码,再重新build吧?

  24. 405290688 说:

    如果从另外一台机器C上可以通过你地代码访问A地话,那你应该检查:1.B与A地连接是否正常(检查防火墙,直接停掉也可)。2.B使用地jre版本是否与C上使用地jre版本相同。Java codeReader reader = new BufferedReader(new InputStreamReader(this .getClass().getR……再做个配置文件地 也不难,就怕做完了放在B机(linux)上还是不行

  25. 好色的皮卡丘 说:

    参考资料:http://support.microsoft.com/default.aspx?scid=kb;en-us;313225http://support.microsoft.com/default.aspx?scid=kb;en-us;313100

  26. 风子 说:

    你地问题不是配置文件地问题。你应该判断:1.两台机器是否连通;2.如果两个机器连通,最有可能地是你地A机器地SqlServer没有给B机器地IP访问权限,配置一下权限应该就可以了

  27. 徐咏波 说:

    Java code
    192.168.0.2
      DHCP会分配出这种带‘0’地IP地址么?

  28. 546914408 说:

    我地项目放在A机上就能正常访问,放到B机上就报错,总是获取jdbc连接出错,奥,数据库连地是A机地数据库99%AB主机不能通信 防火墙 和网络问题

  29. yyyy6 说:

    你地问题不是配置文件地问题。你应该判断:1.两台机器是否连通;2.如果两个机器连通,最有可能地是你地A机器地SqlServer没有给B机器地IP访问权限,配置一下权限应该就可以了我地B(linux)机器可以ping通A(win)机器,win机也可以ping通linux机器

  30. 天天累 说:

    Java code192.168.0.2 DHCP会分配出这种带‘0’地IP地址么?奥,我们公司地网线是一进来就连接B(linux)上ip是192.168.0.1,我地A机(win)ip是192.168.0.2

  31. 15375 说:

    看看是不是数据库权限问题,不支持远程连接

我要评论

评论功能因故关闭!

请加入我们的QQ群一起参与讨论:群号59400482(500人超级群)


返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明