2013-06-19 3 views
2

Попытка подключения к SQL Server 2012 (Express Edition) с использованием JDBC.Подключение к SQL Server 2012 с использованием jTD

Вот мой код:

import java.sql.*; 

public class MSSqlTestConnection { 
    public static void main(String[] args) { 
     try { 
      Connection con = DriverManager.getConnection (
       "jdbc:jtds:sqlserver://localhost;instance=LOCALDB#B431115D;DatabaseName=foo","sa","my_password" 
      ); 
      Statement stmt = con.createStatement(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Я попробовал все возможные комбинации доступны. Вот полный трассировки стека:

java.sql.SQLException: Login failed for user 'sa'. 
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) 
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2988) 
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2421) 
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:632) 
    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(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at MSSqlTestConnection.main(MSSqlTestConnection.java:10) 

Pipe и TCP/IP включена

смешанный режим аутентификации включен

прекрасно работает с Management Studio, когда я войти, используя "са"

Я почти все пробовал. Кажется, я не нашел решения. Я попробовал изменить экземпляр = SQLExpress. Удаление свойства экземпляра. Добавление имени пользователя и пароля. Добавление свойства databasename. Ничего не работает.

Любая помощь будет оценена по достоинству.

РЕШЕНИЕ:

Я вновь установлен SQL Server 2012. Наконец попал в строку рабочего соединения. Оказывается, Microsoft SQL Server 2012 изменил имя экземпляра по умолчанию. В настоящее время MSSQLSERVER вместо SQLExpress. Вы можете выбрать свой собственный экземпляр по умолчанию или то есть по имени при настройке SQL Server 2012.

Connection Connect = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost:1433;instance=MSSQLSERVER;DatabaseName=Database_name",user,password); 

Также не забудьте использовать смешанный режим аутентификации при настройке SQL Server.

+0

Режим смешанной аутентификации ... что заставило меня задаться вопросом, что случилось в течение часа :(хороший совет! – Dan

+0

привет, я могу узнать, какую версию jtds вы используете? – AuroraBlaze

+0

и вы получили это сообщение об ошибке? ОШИБКА: Исключение! - Charset 0x0904000128/Cp850 не поддерживается JVM. – AuroraBlaze

ответ

1

я испытал те же симптомы, после перемещения приложения с MSSQL Server 2005 для MSSQL Server 2012.

мой обходной путь, чтобы изменить строку подключения из

jdbc:jtds:sqlserver://a.example.com/xyz;user=bob;password=xxx 

в

jdbc:jtds:sqlserver://a.example.com/xyz;instance=MSSQLSERVER;user=bob;password=xxx;TDS=7.0 

Короче говоря, я добавил эти два атрибута в конце строки:

;instance=MSSQLSERVER;TDS=7.0 
Смежные вопросы