如何在我的本地主机上设置 SQL 服务器实例?
How to setup a SQL Server instance on my localhost?
我正在探索使用 Java 中的 JDBC 连接到 SQL 数据库并与之交互的方法。问题是无论我如何按照语法建立这样的连接,它都不允许我连接到笔记本电脑上 SQL 服务器的那个实例。我已经看到其他人能够 运行 他们的本地主机上的此类实例,并且能够通过 JDBS 连接到它,但我找不到任何演练,因为我可以如何做同样的事情。任何帮助将不胜感激。这是我笔记本电脑上的连接:
这里是 JDBC 连接 URL,我尝试根据我的代码建立此连接:
package helpers;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbHandler {
private static final String connectionUrl = "jdbc:sqlserver://LAPTOP-KAQ3H6IG//SQLEXPRESS:1433;database=pub;user=MyUserName;password=MyPassword";
public static void addNewJobWithName(String jobName) {
try (Connection connect = DriverManager.getConnection(connectionUrl)) {
connect.createStatement().execute("INSERT INTO [pub].[dbo].[jobs] (job_id, job_desc, min_lvl, max_lvl) VALUES (2,'QA3', 50, 100);");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我收到的错误:
The TCP/IP connection to the host LAPTOP-KAQ3H6IG//SQLEXPRESS, port 1433 has failed. Error: "LAPTOP-KAQ3H6IG//SQLEXPRESS. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
提前感谢您的帮助
根据此处的评论和我在堆栈溢出上阅读的其他一些帖子结合了一些事情来完全解决这个问题,这里是我所做的事情:
- 将我的连接 URL 字符串更改为:
"jdbc:sqlserver://localhost:1433;database=pub;user=MyUserName;password=MyPassword;encrypt=true;trustServerCertificate=true";
- 在 SQL 服务器配置管理器上单击 'SQL Server Network Configuration' 并在 'Protocols for SQLEXPRESS' 中启用 'Named Pipes' 和 'TCP/IP'(我的本地 MSSQL实例已设置)。
- 在同一个 window 中单击 TCP/IP,切换到 IP 地址选项卡并输入“1433”作为列表末尾 IPAII 部分的端口号(保留其他端口部分为空)。
- 已从 Windows 中的服务列表中重新启动 SQL 服务器 (SQLEXPRESS)。
希望对遇到同样问题的其他人也有帮助。
我正在探索使用 Java 中的 JDBC 连接到 SQL 数据库并与之交互的方法。问题是无论我如何按照语法建立这样的连接,它都不允许我连接到笔记本电脑上 SQL 服务器的那个实例。我已经看到其他人能够 运行 他们的本地主机上的此类实例,并且能够通过 JDBS 连接到它,但我找不到任何演练,因为我可以如何做同样的事情。任何帮助将不胜感激。这是我笔记本电脑上的连接:
这里是 JDBC 连接 URL,我尝试根据我的代码建立此连接:
package helpers;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbHandler {
private static final String connectionUrl = "jdbc:sqlserver://LAPTOP-KAQ3H6IG//SQLEXPRESS:1433;database=pub;user=MyUserName;password=MyPassword";
public static void addNewJobWithName(String jobName) {
try (Connection connect = DriverManager.getConnection(connectionUrl)) {
connect.createStatement().execute("INSERT INTO [pub].[dbo].[jobs] (job_id, job_desc, min_lvl, max_lvl) VALUES (2,'QA3', 50, 100);");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我收到的错误:
The TCP/IP connection to the host LAPTOP-KAQ3H6IG//SQLEXPRESS, port 1433 has failed. Error: "LAPTOP-KAQ3H6IG//SQLEXPRESS. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.". at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)
提前感谢您的帮助
根据此处的评论和我在堆栈溢出上阅读的其他一些帖子结合了一些事情来完全解决这个问题,这里是我所做的事情:
- 将我的连接 URL 字符串更改为:
"jdbc:sqlserver://localhost:1433;database=pub;user=MyUserName;password=MyPassword;encrypt=true;trustServerCertificate=true";
- 在 SQL 服务器配置管理器上单击 'SQL Server Network Configuration' 并在 'Protocols for SQLEXPRESS' 中启用 'Named Pipes' 和 'TCP/IP'(我的本地 MSSQL实例已设置)。
- 在同一个 window 中单击 TCP/IP,切换到 IP 地址选项卡并输入“1433”作为列表末尾 IPAII 部分的端口号(保留其他端口部分为空)。
- 已从 Windows 中的服务列表中重新启动 SQL 服务器 (SQLEXPRESS)。 希望对遇到同样问题的其他人也有帮助。