Открытие SQL Server Express через JDBC в Mathematica? - PullRequest
4 голосов
/ 10 января 2012

У меня есть два компьютера с двумя (якобы) идентичными установками SQL Server Express 2008 R2, оба работают под управлением Windows 7 64-разрядной версии. На одном компьютере (назовите его «красным») я могу выполнить следующий код mathematica, чтобы открыть соединение с базой данных и прочитать данные

Needs["DatabaseLink`"]

conn = OpenSQLConnection[
  JDBC[
   "Microsoft SQL Server(jTDS)",
   "localhost"],
  "Instance" -> "SQLExpress"]

У меня установлен драйвер jTDS для сервера sql в c:\windows\system32\ntlmauth.dll. Я скопировал dll с рабочей машины "red" на нерабочую машину "black".

Я использовал инструмент импорта и экспорта SQL-Server для перевода очень простой базы данных из «красной» в «черную» и проверил, что база данных доступна, запустив LinqPad в «черном» и считав данные. Все хорошо.

Теперь я пытаюсь запустить приведенный выше код Mathematica на «черном», и я получаю сообщение о неисправимости, а именно:

JDBC :: error: "! (TraditionalForm` \" Сетевая ошибка IOException: соединение отклонено: connect \ ")"

Я просто знаю, что это будет одной из тех кошмарных проблем с правами доступа к учетной записи localservice или учетной записи сетевого сервиса. У меня нет Sql-Server Management Studio на компьютере «черного цвета», и я не смог найти подходящую версию SSMS для установки для SQL Server 2008 R2 Express (версия SSMS Express 2008 не устанавливается, ссылаясь на «известные проблемы совместимости»). Я действительно не скучаю по SSMS, так как LinqPad отлично работает для моих задач разработки.

Я не знаю, как диагностировать, обойти или каким-либо образом действовать - я полностью заблокирован и буду очень признателен за совет или руководство.

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Здесь немного догадываюсь, но я бы попробовал

conn = OpenSQLConnection[ JDBC[ "Microsoft SQL Server(jTDS)", "localhost:1433;instance=SQLExpress"]]

Я почти уверен, что OpenSQLConnection [] не использует опцию "Экземпляр".Это может работать, если передано так:

conn = OpenSQLConnection[ JDBC[ "Microsoft SQL Server(jTDS)", "localhost:1433"], "Properties"->{"instance"->"SQLExpress"}]

3 голосов
/ 10 января 2012

Ошибка подключения при подключении к SQL Server.Это не ошибка аутентификации.

Возможно, ваш SQL Server не настроен на прием запроса через

через используемый вами транспортный протокол.Откройте SQL Server Surface Configuration

Manager и разрешите принимать подключения всеми доступными способами.

...