2

我按照此处的说明在 Azure 中设置了一个 SlashDB 实例。

我设置了一个 Azure DB,我可以使用服务器管理员帐户从 SSMS 访问它。DB 服务器防火墙似乎已正确连接到 SlashDB 服务器 vnet 子网的服务端点。

当我让 SlashDB 根据主机和数据库名称组成连接字符串时,我收到此错误:

由于 OperationalError,无法加载模型 bromach_dev。(pyodbc.OperationalError) ('08001', u'[08001] [unixODBC][FreeTDS][SQL Server]无法连接到数据源 (0) (SQLDriverConnect)') (此错误的背景:http:// sqlalche.me/e/e3q8 )

连接错误(默认连接字符串)

当我使用 Azure 门户中的 ODBC 连接字符串覆盖连接字符串时,我收到此错误:

由于 InterfaceError,无法加载模型 bromach_dev。(pyodbc.InterfaceError) ('IM002', u'[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)') (此错误的背景:http: //sqlalche.me/e/rvf5 )

连接错误(Azure 连接字符串)

在这种情况下,我使用的连接字符串是:

Driver={ODBC Driver 13 for SQL Server};Server=tcp:org-dev.database.windows.net,1433;Database=bromach_dev;Uid=serveradmin@org-dev;Pwd=********* *******;加密=是;TrustServerCertificate=否;连接超时=30;

想法?

4

2 回答 2

1

为了让 SlashDB 连接,必须有一个从其虚拟机实例到 Azure SQL Server 的开放 TCP/IP 路由(对不起,如果我说的很明显)。

此外,SlashDB 实例上必须有一个有效的 DNS 解析器,以便它可以获取连接字符串中配置的数据库主机的 IP 地址。

DNS修复——不再需要——

让我们从后者开始。新的 SlashDB 镜像有一个 bug,这是由 Azure 发布过程中的一个 bug 引起的https://github.com/Azure/WALinuxAgent/issues/1151。我们已经向市场发布了修正后的图像。不再需要以下解决方法:

  1. 使用您在启动实例时设置的凭据通过 SSH 登录到您的 SlashDB 实例。
  2. 发出以下命令

    sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

防火墙设置(简单) ——从这里开始——

使用 Azure 门户,导航到您的数据库资源并单击“设置服务器防火墙”按钮。

在此处输入图像描述

检查“允许访问 Azure 服务”是否已打开。在我们的测试中,一个 SlashDB 实例运行在与数据库服务器相同的位置(在我们的例子中是美国东部),打开此设置时连接没有问题。

在此处输入图像描述

防火墙设置(更安全)

使用与上面相同的防火墙设置面板,关闭“允许访问 Azure 服务”。相反,我们将为您的 SlashDB 实例添加一个网络路由以进行连接。最好使用如下虚拟网络规则来执行此操作。

  1. 单击屏幕底部的“添加现有虚拟网络”按钮。将打开一个侧面板。
  2. 填写所需的详细信息,最重要的是 SlashDB 实例的虚拟网络的名称(您可以在 Azure 门户的“概述”页面中找到该名称)。单击确定。
  3. 点击“保存”。

在此处输入图像描述

SlashDB 中的数据库连接

在浏览器中打开您的 SlashDB 用户界面,导航到配置/数据库,然后单击数据库连接旁边的“编辑”按钮。

无需覆盖连接字符串。您的数据库连接配置应如下所示:

在此处输入图像描述

完成后单击保存,然后单击关闭。您现在应该能够成功连接。

在此处输入图像描述

于 2018-12-26T18:08:45.283 回答
0

如果您的 Azure SQL DB 不是托管实例,则 SlashDB VM 无法连接到它。

请确保 Azure SQL 数据库服务器防火墙正确连接到 SlashDB 服务器 vnet 子网的服务端点。

SlashDB 的说明中还提供了两种连接失败的解决方案: 在此处输入图像描述

另外,我想你也许可以阅读这个链接作为参考:Configure Azure VM to connect to an Azure SQL Database Managed Instance

我希望这可以帮助你。

于 2018-12-25T08:41:55.393 回答