gpt4 book ai didi

sql-server - 无法从 Azure VM 访问 Azure SQL Server

转载 作者:行者123 更新时间:2023-12-03 06:44:55 24 4
gpt4 key购买 nike

遵循 Microsoft 提供的 Azure VM 群集教程 ( https://learn.microsoft.com/en-us/azure/developer/terraform/create-vm-cluster-with-infrastructure ),

我在 Azure 中创建了一个资源组。在资源组下,我创建了VN、子网等。

现在,我在资源组中创建了两个虚拟机。它们的顶部都有一个 LoadBalancer。我已向 LB 添加 NAT 规则以连接到单个实例,同时它们共享相同的前端 IP。 enter image description here

我创建了一个新的资源Azure MSSQL服务器,在SQL服务器的防火墙规则中,将LB的公共(public)IP添加到Azure服务器 enter image description here

我现在已登录到各个虚拟机,并尝试从虚拟机访问 SQL 服务器,但无法连接到它。

我尝试正常ping <hostname>它失败了133 packets transmitted, 0 received, 100% packet loss, time 295ms

然后我尝试从 IP 地址进行 telnet(IP 地址是从 ping 接收到的)我得到了

Trying <ip_address>...
Connected to <ip_address>.
Escape character is '^]'.

当我尝试使用应用程序进行连接时,出现此错误

com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset ClientConnectionId:8b2f0e3b
-fda0-41af-b8dc-ce80d0760b82
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.jav
a:3806) ~[mssql-jdbc-11.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:2109) ~[mssql-jdbc-11.2
.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.prelogin(SQLServerConnection.java
:3517) ~[mssql-jdbc-11.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection
.java:3325) ~[mssql-jdbc-11.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:29
50) ~[mssql-jdbc-11.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnecti
on.java:2790) ~[mssql-jdbc-11.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:
1663) ~[mssql-jdbc-11.2.0.jre8.jar:?]
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1064) ~[
mssql-jdbc-11.2.0.jre8.jar:?]
at jet.server.db.core.ConnectorManager$ConnectionPool.£(ConnectorManager.java:712) ~[
JRESServlets.jar:?]
at jet.server.db.core.ConnectorManager$ConnectionPool.connect(ConnectorManager.java:4
32) ~[JRESServlets.jar:?]
at jet.server.db.core.ConnectorManager$ConnectionPool.getConnection(ConnectorManager.
java:504) ~[JRESServlets.jar:?]
at jet.server.db.core.ConnectorManager$ConnectionPool.getConnection(ConnectorManager.
java:487) ~[JRESServlets.jar:?]
at jet.server.db.core.DatabaseImpl.open(DatabaseImpl.java:839) ~[JRESServlets.jar:?]
at jet.server.db.core.GlobalDataService.<init>(GlobalDataService.java:103) ~[JRESServ
lets.jar:?]
at jet.server.db.core.GlobalDataService.init(GlobalDataService.java:37) ~[JRESServlet
s.jar:?]
at jet.server.ServerEnv.K(ServerEnv.java:2322) ~[JRESServlets.jar:?]

我该如何完成这项工作?

最佳答案

Azure SQL 只能通过 TCP 端口 1433 使用。检查防火墙是否允许端口 1433 上的传出 TCP 通信。

enter image description here

您可以使用以下命令检查连接:

Test-NetConnection -Port 1433 -ComputerName ServerName.database.windows.net

要解决该错误,请确保在服务器路径中打开防火墙,例如 Windows 防火墙、企业防火墙或 Azure NSG(允许访问的网络安全组。

在 Azure SQL Server 中,选择“网络”并启用以下选项:

enter image description here

连接到 Azure 虚拟机并重新启动 SQL Server,如下所示:

enter image description here

引用:

IP firewall rules - Azure SQL Database | Microsoft Learn

关于sql-server - 无法从 Azure VM 访问 Azure SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74196040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com