Облачная SlashDB VM не может соединиться с Azure SQL DB - PullRequest
0 голосов
/ 25 декабря 2018

Я установил экземпляр SlashDB в Azure, следуя инструкциям здесь .

Я установил базу данных Azure, к которой у меня есть прекрасный доступ из SSMS с использованием учетной записи администратора сервера.Брандмауэр сервера БД, по-видимому, правильно подключен к конечной точке службы подсети vnet-сервера SlashDB.

Когда я позволяю SlashDB составить строку подключения на основе имен хоста и БД, я получаю эту ошибку:

Не удалось загрузить модель bromach_dev из-за OperationalError.(pyodbc.OperationalError) ('08001', u '[08001] [unixODBC] [FreeTDS] [SQL Server] Невозможно подключиться к источнику данных (0) (SQLDriverConnect)') (фон этой ошибки: http://sqlalche.me/e/e3q8)

Ошибка подключения (строка подключения по умолчанию)

Когда я переопределяю строку подключения строкой подключения ODBC из портала Azure, вместо этого я получаю эту ошибку:

Не удалось загрузить модель bromach_dev из-за ошибки InterfaceError. (Pyodbc.InterfaceError) ('IM002', u '[IM002] [unixODBC] [Driver Manager] Не найдено имя источника данных и драйвер по умолчанию не найденуказано (0) (SQLDriverConnect) ') (фон этой ошибки: http://sqlalche.me/e/rvf5)

Ошибка подключения (строка подключения Azure)

В этом случае, строка подключения, которую я использую:

Driver = {Драйвер ODBC 13 для SQL Server}; Сервер = tcp: org-dev.database.windows.net, 1433; База данных = bromach_dev; Uid= ServerAdmin @ орг-DEV, не PWD = ****************; Encrypt = да; TrustServerCertificate = нет; соединенияТайм-аут = 30;

Идеи?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Для подключения SlashDB должен быть открытый маршрут TCP / IP от экземпляра его виртуальной машины до SQL Server Azure (извините, если я утверждаю очевидное).

Кроме того, на экземпляре SlashDB должен быть работающий преобразователь DNS, чтобы он мог получить IP-адрес хоста базы данных, настроенный в строке подключения.

Исправление DNS - Больше не требуется -

Давайте начнем с последнего.В новом образе SlashDB была ошибка, которая вызвана ошибкой в ​​процессе публикации Azure https://github.com/Azure/WALinuxAgent/issues/1151. Мы уже опубликовали исправленное изображение на рынке.Следующий обходной путь: больше не требуется :

  1. Войдите в свой экземпляр SlashDB через SSH, используя учетные данные, которые вы указали при запуске экземпляра.
  2. Введите следующую команду

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

Настройки брандмауэра(просто) - НАЧАТЬ ЗДЕСЬ -

Используя портал Azure, перейдите к ресурсу базы данных и нажмите кнопку «Установить межсетевой экран сервера».

enter image description here

Проверьте, включен ли параметр «Разрешить доступ к службам Azure».В нашем тестировании экземпляр SlashDB, работающий в том же месте, что и сервер базы данных (в нашем случае это восточная часть США) с включенным этим параметром, подключился без проблем.

enter image description here

Настройки брандмауэра (безопаснее)

Используя ту же панель настроек брандмауэра, что и выше, отключите «Разрешить доступ к службам Azure».Вместо этого мы добавим сетевой маршрут для подключения вашего экземпляра SlashDB.Желательно сделать это, используя правила виртуальной сети следующим образом.

  1. Нажмите кнопку «Добавить существующую виртуальную сеть» в нижней части экрана.Откроется боковая панель.
  2. Введите необходимые данные, наиболее важно имя виртуальной сети вашего экземпляра SlashDB (вы можете найти его на странице «Обзор» в портале Azure).Нажмите OK.
  3. Нажмите «Сохранить».

enter image description here

Подключение к базе данных в SlashDB

Откройте пользовательский интерфейс SlashDB в браузере, перейдите в «Конфигурация / Базы данных» и нажмите кнопку «Изменить» рядом с подключением к базе данных.

Нет необходимости переопределять строку подключения.Ваша конфигурация соединения с базой данных должна выглядеть примерно так:

enter image description here

Как только это будет сделано, нажмите Сохранить, затем Закрыть.Теперь вы сможете успешно подключиться.

enter image description here

0 голосов
/ 25 декабря 2018

Если база данных SQL Azure не является управляемым экземпляром, виртуальная машина SlashDB не может подключиться к ней.

И убедитесь, что брандмауэр сервера баз данных SQL Azure правильно подключен к конечной точке службы подсети vnet-сервера SlashDB.

Инструкции по SlashDB также предоставляют два решения о том, как решить сбой соединения: enter image description here

Кроме того, я думаю, что вы, возможно, можете прочитать эту ссылку дляссылка: Настройка виртуальной машины Azure для подключения к управляемому экземпляру базы данных SQL Azure

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...