【问题标题】:Unable to connect to SQL Server Linux Docker container via SQL Server Management Studio无法通过 SQL Server Management Studio 连接到 SQL Server Linux Docker 容器
【发布时间】:2017-06-07 07:43:17
【问题描述】:

我对 Linux 操作系统很陌生,所以希望这不是一个愚蠢的问题!

软件:
Windows 10 专业版
Docker for Windows (1.13.0-beta38 (9805))
SQL Server Management Studio v17.0 RC1

问题: 我正在尝试使用 SSMS 连接到我的 SQL Server Linux 容器。它不起作用,因此查看文档,您似乎需要在 SQL Server Linux 映像之上使用SQL Server Tools installed(页面底部)。

我跟着these instructions在Ubuntu上安装SQL Server Tools(SQL Server Linux Image的基础镜像)

错误: bash: curl: command not found

重现错误的步骤:

  • 拉取最新microsoft/sql-server-linux图片
  • 按指令运行:docker run -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux
  • 附加到容器使用:docker exec -it <container_id> /bin/bash
  • 尝试导入公共存储库 GPG 密钥:curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

我尝试过的方法:

  • 我试过运行apt-get install curl,但我得到的只是E: Unable to locate package curl
  • 谷歌搜索 - 没有尽头

第一次编辑 - 通过 SSMS 连接 我尝试使用以下服务器名称从 SSMS 连接到容器(我使用 SQL 身份验证和在 docker run 命令期间指定的凭据):

  • 本地主机:1433
  • 本地主机\[容器名称]
  • [container_ip_address]:1433

解决方案(种类)
好的,所以我得到了这个工作。但我不是 100% 确定这是怎么回事。
我使用localhost 作为服务器名称(默认为端口 1433)
作为 docker-compose.yml 文件的一部分,我还在容器中安装了一个卷:

volumes: 
  - C:\local\volume\path:/var/opt/mssql

SQL Server Linux 日志

Configuring Microsoft(R) SQL Server(R)...
Configuration complete.
This is an evaluation version.  There are [141] days left in the evaluation period.
2017-01-23 08:14:10.39 Server      Microsoft SQL Server vNext (CTP1.1) - 14.0.100.187 (X64)
        Dec 10 2016 02:51:11
        Copyright (C) 2016 Microsoft Corporation. All rights reserved.
        on Linux (Ubuntu 16.04.1 LTS)
2017-01-23 08:14:10.40 Server      UTC adjustment: 0:00
2017-01-23 08:14:10.41 Server      (c) Microsoft Corporation.
2017-01-23 08:14:10.41 Server      All rights reserved.
2017-01-23 08:14:10.42 Server      Server process ID is 4116.
2017-01-23 08:14:10.42 Server      Logging SQL Server messages in file 'C:\var\opt\mssql\log\errorlog'.
2017-01-23 08:14:10.42 Server      Registry startup parameters:
         -d C:\var\opt\mssql\data\master.mdf
         -l C:\var\opt\mssql\data\mastlog.ldf
         -e C:\var\opt\mssql\log\errorlog
2017-01-23 08:14:10.44 Server      SQL Server detected 1 sockets with 2 cores per socket and 2 logical processors per socket, 2 total logical processors; using 2 logical
processors based on SQL Server licensing. This is an informational message; no user action is required.
2017-01-23 08:14:10.45 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.
2017-01-23 08:14:10.46 Server      Detected 3143 MB of RAM. This is an informational message; no user action is required.
2017-01-23 08:14:10.46 Server      Using conventional memory in the memory manager.
2017-01-23 08:14:10.54 Server      Default collation: SQL_Latin1_General_CP1_CI_AS (us_english 1033)
2017-01-23 08:14:10.68 Server      Buffer pool extension is already disabled. No action is necessary.
2017-01-23 08:14:10.79 Server      InitializeExternalUserGroupSid failed. Implied authentication will be disabled.
2017-01-23 08:14:10.79 Server      Implied authentication manager initialization failed. Implied authentication will be disabled.
2017-01-23 08:14:10.84 Server      The maximum number of dedicated administrator connections for this instance is '1'
2017-01-23 08:14:10.84 Server      Node configuration: node 0: CPU mask: 0x0000000000000003:0 Active CPU mask: 0x0000000000000003:0. This message provides a description o
f the NUMA configuration for this computer. This is an informational message only. No user action is required.
2017-01-23 08:14:10.86 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational m
essage only.  No user action is required.
2017-01-23 08:14:10.87 Server      Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initial
ization' in SQL Server Books Online. This is an informational message only. No user action is required.
2017-01-23 08:14:10.89 Server      Query Store settings initialized with enabled = 1,
2017-01-23 08:14:10.89 spid5s      Starting up database 'master'.
2017-01-23 08:14:10.91 Server      In-Memory OLTP initialized on lowend machine.
2017-01-23 08:14:10.98 Server      Software Usage Metrics is disabled.
2017-01-23 08:14:11.04 spid5s      8 transactions rolled forward in database 'master' (1:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.07 spid5s      0 transactions rolled back in database 'master' (1:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.08 spid5s      Recovery is writing a checkpoint in database 'master' (1). This is an informational message only. No user action is required.
2017-01-23 08:14:11.13 spid5s      Buffer pool extension is already disabled. No action is necessary.
2017-01-23 08:14:11.13 spid5s      Resource governor reconfiguration succeeded.
2017-01-23 08:14:11.13 spid5s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.
2017-01-23 08:14:11.14 spid5s      SQL Server Audit has started the audits. This is an informational message. No user action is required.
2017-01-23 08:14:11.18 spid5s      SQL Trace ID 1 was started by login "sa".
2017-01-23 08:14:11.20 spid5s      Server name is '65507453cf5a'. This is an informational message only. No user action is required.
2017-01-23 08:14:11.23 spid17s     Password policy update was successful.
2017-01-23 08:14:11.24 spid5s      Starting up database 'msdb'.
2017-01-23 08:14:11.24 spid6s      Starting up database 'mssqlsystemresource'.
2017-01-23 08:14:11.26 spid6s      The resource database build version is 14.00.100. This is an informational message only. No user action is required.
2017-01-23 08:14:11.29 spid6s      Starting up database 'model'.
2017-01-23 08:14:11.61 spid5s      7 transactions rolled forward in database 'msdb' (4:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.61 spid6s      7 transactions rolled forward in database 'model' (3:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.63 spid6s      0 transactions rolled back in database 'model' (3:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.63 spid5s      0 transactions rolled back in database 'msdb' (4:0). This is an informational message only. No user action is required.
2017-01-23 08:14:11.63 spid6s      Recovery is writing a checkpoint in database 'model' (3). This is an informational message only. No user action is required.
2017-01-23 08:14:11.64 spid5s      Recovery is writing a checkpoint in database 'msdb' (4). This is an informational message only. No user action is required.
2017-01-23 08:14:11.75 spid6s      Polybase feature disabled.
2017-01-23 08:14:11.76 spid6s      Clearing tempdb database.
2017-01-23 08:14:12.10 spid17s     A self-generated certificate was successfully loaded for encryption.
2017-01-23 08:14:12.11 spid17s     Server is listening on [ 0.0.0.0 <ipv4> 1433].
2017-01-23 08:14:12.13 Server      Server is listening on [ 127.0.0.1 <ipv4> 1434].
2017-01-23 08:14:12.13 Server      Dedicated admin connection support was established for listening locally on port 1434.
2017-01-23 08:14:12.14 spid17s     SQL Server is now ready for client connections. This is an informational message; no user action is required.
2017-01-23 08:14:12.40 spid6s      Starting up database 'tempdb'.
2017-01-23 08:14:12.68 spid6s      The tempdb database has 1 data file(s).
2017-01-23 08:14:12.69 spid20s     The Service Broker endpoint is in disabled or stopped state.
2017-01-23 08:14:12.70 spid20s     The Database Mirroring endpoint is in disabled or stopped state.
2017-01-23 08:14:12.71 spid20s     Service Broker manager has started.
2017-01-23 08:14:12.75 spid5s      Recovery is complete. This is an informational message only. No user action is required.
2017-01-23 08:14:15.89 spid29s     The activated proc '[dbo].[sp_syspolicy_events_reader]' running on queue 'msdb.dbo.syspolicy_event_queue' output the following:  'Trans
action (Process ID 29) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.'
2017-01-23 08:19:14.95 spid51      Using 'dbghelp.dll' version '4.0.5'
2017-01-23 08:19:18.62 spid51      Attempting to load library 'xplog70.dll' into memory. This is an informational message only. No user action is required.
2017-01-23 08:19:18.65 spid51      Using 'xplog70.dll' version '2016.140.100' to execute extended stored procedure 'xp_msver'. This is an informational message only; no u
ser action is required.

【问题讨论】:

  • 您在 SSMS 中输入的服务器名称是什么?
  • 您不需要在容器上安装 SQL Server Tools 即可从外部连接。您还有其他问题。
  • 您是否在虚拟机中运行 Linux 主机?另外请附上docker logs #containerHash的输出
  • 嗨彼得,是的,它运行在 Docker for Windows 创建的默认虚拟机上。我已经用日志更新了问题。
  • SSMS 使用逗号而不是冒号来分隔服务器名称和端口号。试试localhost,1433

标签: sql-server docker ubuntu-16.04


【解决方案1】:

我遇到了同样的问题,Ed Harper 的评论解决了我的问题:

SSMS 使用逗号而不是冒号来分隔服务器名称 和端口号。尝试本地主机,1433。 – 埃德哈珀 1 月 23 日 12:52

SMSS 中的服务器名称字段要求格式为 locahost,[dockerport]。 所以就我而言,我需要:

本地主机,32768

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多