Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GSS/JDBC问题_Java_Sql Server_Jdbc_Jtds_Jgss - Fatal编程技术网

Java GSS/JDBC问题

Java GSS/JDBC问题,java,sql-server,jdbc,jtds,jgss,Java,Sql Server,Jdbc,Jtds,Jgss,我想解决一个不寻常的问题。我在Mac电脑上开发。我正在编写一些使用jdbc连接到数据库的代码。我没有直接访问db服务器的权限—要访问它,我必须在ssh上设置端口转发,该端口转发到db服务器所在网络中的代理服务器。我代理的服务器是Linux服务器,数据库是Windows上的MS Sql server。设置端口转发后,我可以使用数据库浏览工具(如SquirreSQL)连接到数据库。当我尝试使用我编写的jdbc代码,使用完全相同的jdbc驱动程序连接到数据库时,我得到以下结果: Exception i

我想解决一个不寻常的问题。我在Mac电脑上开发。我正在编写一些使用jdbc连接到数据库的代码。我没有直接访问db服务器的权限—要访问它,我必须在ssh上设置端口转发,该端口转发到db服务器所在网络中的代理服务器。我代理的服务器是Linux服务器,数据库是Windows上的MS Sql server。设置端口转发后,我可以使用数据库浏览工具(如SquirreSQL)连接到数据库。当我尝试使用我编写的jdbc代码,使用完全相同的jdbc驱动程序连接到数据库时,我得到以下结果:

Exception in thread "main" java.sql.SQLException: I/O Error: GSS Failed: Invalid name provided (Mechanism level: Cannot locate default realm)
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:654)
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:371)
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:233)
    at sql.generator.SQLGenerator.main(SQLGenerator.java:80)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.io.IOException: GSS Failed: Invalid name provided (Mechanism level: Cannot locate default realm)
    at net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976)
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:617)
    ... 10 more
线程“main”java.sql.SQLException中的异常:I/O错误:GSS失败:提供的名称无效(机制级别:找不到默认域) 位于net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:654) 位于net.sourceforge.jtds.jdbc.JtdsConnection。(JtdsConnection.java:371) 位于net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184) 位于java.sql.DriverManager.getConnection(DriverManager.java:571) 位于java.sql.DriverManager.getConnection(DriverManager.java:233) 位于sql.generator.SQLGenerator.main(SQLGenerator.java:80) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:606) 位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 原因:java.io.IOException:GSS失败:提供的名称无效(机制级别:找不到默认域) 位于net.sourceforge.jtds.jdbc.TdsCore.sendMSLoginPkt(TdsCore.java:1976) 位于net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:617) ... 10多 对谷歌的研究表明,这可能是一个Kerberos问题,我以前没有处理过这个问题,但我不确定这是否正确。db浏览器在做什么,我需要在应用程序中复制

蒂亚,
亚历克斯这一次也咬了我一口。检查DriverManager.getConnection调用。我一直在使用一个变量,它将属性作为第二个参数。但jTDS的使用方式与M$驱动程序不同。您必须使用带有URL、用户名和密码参数的变量。请确保将端口号和(可选)数据库名称添加到连接URL。

这一点也会影响我。检查DriverManager.getConnection调用。我一直在使用一个变量,它将属性作为第二个参数。但jTDS的使用方式与M$驱动程序不同。您必须使用带有URL、用户名和密码参数的变量。确保将端口号和(可选)数据库名称添加到连接URL