简体   繁体   English

无法通过SQL Server Management Studio连接到SQL Server Linux Docker容器

[英]Unable to connect to SQL Server Linux Docker container via SQL Server Management Studio

I'm quite new to Linux OS's so hope this isn't a stupid question!! 我对Linux OS还是很陌生,所以希望这不是一个愚蠢的问题!!

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

Issue: I'm trying to connect to my SQL Server Linux container using SSMS. 问题:我正在尝试使用SSMS连接到我的SQL Server Linux容器。 It's not worked, so looking over the documentation it seems you need SQL Server Tools installed (bottom of page) on top of of the SQL Server Linux image. 它不起作用,因此查看文档似乎您需要在SQL Server Linux映像之上安装SQL Server Tools (页面底部)。

I followed these instructions to install SQL Server Tools on Ubuntu (base image of SQL Server Linux Image) 我按照以下说明在Ubuntu上安装SQL Server工具(SQL Server Linux映像的基本映像)

Error: bash: curl: command not found 错误: bash: curl: command not found

Steps to reproduce error: 重现错误的步骤:

  • Pull latest microsoft/sql-server-linux image 拉最新的microsoft/sql-server-linux映像
  • Run according to instructions: docker run -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux 根据说明docker run -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linuxdocker run -e 'ACCEPT_EULA=Y' -e SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux
  • Attach to container using: docker exec -it <container_id> /bin/bash 使用以下命令附加到容器: docker exec -it <container_id> /bin/bash
  • Attempt to import public repository GPG keys: curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - 尝试导入公共存储库GPG密钥: curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Thing's I've tried: 我尝试过的东西:

  • I've tried running apt-get install curl but all i get is E: Unable to locate package curl 我试过运行apt-get install curl但我得到的只是E: Unable to locate package curl
  • Googling - to no end 谷歌搜索-永无止境

First edit - Connecting via SSMS I've tried connecting to the container from SSMS using the following server names (I am using SQL authentication with the credentials specified during the docker run command): 第一次编辑-通过SSMS连接我尝试使用以下服务器名称从SSMS连接到容器(我使用docker run命令期间指定的凭据使用SQL身份验证):

  • localhost:1433 本地主机:1433
  • localhost\\[container_name] 本地主机\\ [CONTAINER_NAME]
  • [container_ip_address]:1433 [container_ip_address]:1433

Solution (kind of) 解决方法(种类)
OK so i got this working. 好,这样我就可以了。 But I'm not 100% sure what did the trick. 但是我不是100%知道是什么原因。
I used localhost as the server name (defaults to port 1433) 我使用localhost作为服务器名称(默认为端口1433)
I also mounted a volume to the container as part of my docker-compose.yml file: 我还将一个卷作为docker-compose.yml文件的一部分安装到了容器上:

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

SQL Server Linux Logs 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.

I had the same issue and the comment from Ed Harper resolved my issue: 我遇到了同样的问题,Ed Harper的评论解决了我的问题:

SSMS uses a comma rather than a colon to delimit between server name and port number. SSMS使用逗号而不是冒号来分隔服务器名称和端口号。 Try localhost,1433. 尝试localhost,1433。 – Ed Harper Jan 23 at 12:52 – Ed Harper 1月23日12:52

The server name field in SMSS required a format of locahost,[dockerport]. SMSS中的服务器名称字段需要locahost [dockerport]的格式。 So in my case I needed: 因此,就我而言,我需要:

localhost,32768 本地主机,32768

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM