Как подключить докер SQL Server Linux с SQL Operations Studio (в Windows) - PullRequest
0 голосов
/ 12 мая 2018

Как я уже говорил, мне не удалось подключить контейнер к SQL Operations Studio.

Я использую docker compose для монтирования контейнеров, он создается правильно, но когда я ввожу учетные данные в SQL Server Operations Studio, он не подключается.

докер-compose.yml

version: '3'
services: 
  mssqllinux:
    image:  microsoft/mssql-server-linux:2017-latest

    env_file: 
      - ./docker.env
    ports:
      - "1433:1433"

docker.env

sa_password=RUc@ysd@f_P*yq4é
ACCEPT_EULA=Y
MSSQL_PID=Express

λ docker-compose ps

              Name                     Command           State           Ports
    -----------------------------------------------------------------------------------
    sqlserlinux_mssqllinux_1   /opt/mssql/bin/sqlservr   Up      0.0.0.0:1433->1433/tcp

Подключение:


Connections settings

Ошибка:


error message

Ошибка трассировки:


System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) ---> System.ComponentModel.Win32Exception (53): No se ha encontrado la ruta de acceso de la red
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.<>c__DisplayClass22_0.<TryGetConnection>b__0(Task`1 _)
   at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.SqlTools.ServiceLayer.Connection.ReliableConnection.ReliableSqlConnection.<>c__DisplayClass28_0.<<OpenAsync>b__0>d.MoveNext() in D:\a\1\s\src\Microsoft.SqlTools.ServiceLayer\Connection\ReliableConnection\ReliableSqlConnection.cs:line 298
--- End of stack trace from previous location where exception was thrown ---
   at Microsoft.SqlTools.ServiceLayer.Connection.ConnectionService.TryOpenConnection(ConnectionInfo connectionInfo, ConnectParams connectionParams) in D:\a\1\s\src\Microsoft.SqlTools.ServiceLayer\Connection\ConnectionService.cs:line 542
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:53,State:0,Class:20

1 Ответ

0 голосов
/ 24 июня 2018

Несколько шагов вы можете попробовать.

Сначала запомните, хотя вы находитесь внутри Windows, но сервер баз данных фактически находится внутри Linux, а Linux является супер чувствительной к регистру системой. Поэтому убедитесь, что ваше имя пользователя SA или sa .

Во-вторых, в значении сервера и порта используйте запятую (,) вместо двоеточия (:), как показано ниже enter image description here

В-третьих, если вышеуказанные шаги не сработали, сначала убедитесь, что вы можете получить доступ к серверу с помощью инструмента SQLCMD. Вы можете следовать этому документу Microsoft для деталей. После успешного входа в базу данных вы можете повторно использовать значение и учетные данные сервера в окне SQL Operations Studio.

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

...