JDBC не подключается к локальной базе данных, хотя я попробовал три разных URL-адреса подключенияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JDBC не подключается к локальной базе данных, хотя я попробовал три разных URL-адреса подключения

Сообщение Anonymous »

Давайте предоставим некоторый контекст:
  • У меня есть локальный сервер MSSQL, который называется (локальный)/MSSQLLocalDB или имя моего устройства: «DESKTOP-T7CN5JN\LOCALDB#6173A439».
  • Я использую проект Java с maven для управления зависимостями.
    < li>с помощью Java ORACLE JDK21
  • Я установил соединение в IntelliJ с базой данных (может писать запросы к БД), и он предоставил третий URL-адрес в предоставленном фрагменте.
  • База данных использует проверку подлинности Windows
Проблема: Как показано в следующем фрагменте кода, я попробовал 3 разные строки подключения, и все это приводит к ошибкам во время выполнения.
Цель: выяснить, какой формат соединения правильный для установки соединения и почему ни один из них не работаетМне кажется, что я повсюду искал решение

Код: Выделить всё

String connectionUrl1 = "jdbc:sqlserver://localhost:1433;databaseName =laptop_registry;integratedSecurity = true;encrypt=false";

String connectionUrl2 = "jdbc:sqlserver://DESKTOP-T7CN5JN\\LOCALDB#6173A439;databaseName = laptop_registry;integratedSecurity=true;encrypt=false";

String connectionUrl3 = "jdbc:jtds:sqlserver://./laptop_registry";

line 15: try (Connection conn = DriverManager.getConnection()
){...}catch.....
URL1 приводит к следующей ошибке

Код: Выделить всё

com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "laptop_registry" requested by the login. The login failed. ClientConnectionId:f933922b-5a12-44f0-b100-3a6390845190
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:270)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:329)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:137)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:42)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$1LogonProcessor.complete(SQLServerConnection.java:6577)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:6889)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:5434)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:5366)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7745)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4391)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:3828)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:3385)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:3194)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1971)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1263)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:683)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:253)
at org.mainn.dbconnector.MSSQLDatabaseConnector.main(MSSQLDatabaseConnector.java:15)
URL2 приводит к следующему результату:

Код: Выделить всё

com.microsoft.sqlserver.jdbc.SQLServerException: The connection to the host DESKTOP-T7CN5JN, named instance localdb#6173a439 failed. Error: "java.net.SocketTimeoutException: Receive timed out". Verify the server and instance names and check that no firewall is blocking UDP traffic to port 1434.  For SQL Server 2005 or later, verify that the SQL Server Browser Service is running on the host.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:242)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(SQLServerConnection.java:7918)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.primaryPermissionCheck(SQLServerConnection.java:3680)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:3364)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:3194)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1971)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1263)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:683)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:253)
at org.mainn.dbconnector.MSSQLDatabaseConnector.main(MSSQLDatabaseConnector.java:15)
URL 3 приводит к следующей ошибке

Код: Выделить всё

java.sql.SQLException: No suitable driver found for jdbc:jtds:sqlserver://./laptop_registry
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:708)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:253)
at org.mainn.dbconnector.MSSQLDatabaseConnector.main(MSSQLDatabaseConnector.java:15)
Я довольно долго искал, и все, что я смог найти, это руководства, которые заставляли меня включать/выключать TCP/IP в диспетчере конфигурации сервера sql, но это не помогло.
Я также извлек файл jdbc_mssql.dll в JDK Java 21, так что это не должно быть проблемой драйвера, как указано в ошибке 3.

Подробнее здесь: https://stackoverflow.com/questions/791 ... t-connecti
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»