- У меня есть локальный SQL-сервер, который называется (local)/MSSQLLocalDB или имя моего устройства: «DESKTOP-T7CN5JN\LOCALDB#6173A439».
- Я использую проект Java с maven для управления зависимостями.
< li>Используя Java ORACLE JDK21 - Я установил соединение в IntelliJ с базой данных (может писать запросы к БД), и он предоставил третий URL-адрес в предоставленном фрагменте.
- База данных использует проверку подлинности Windows
Цель: выяснить, какой формат соединения правильный для установления соединения и почему ни один из них не работаетМне кажется, что я повсюду искал решение
Код: Выделить всё
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.....
Код: Выделить всё
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)
Код: Выделить всё
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)
Код: Выделить всё
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)
Я также извлек файл jdbc_mssql.dll в JDK Java 21, так что это не должно быть проблемой драйвера, как указано в ошибке 3.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ent-connec
Мобильная версия