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

时间:2021-03-13 23:41:23

I'm quite new to Linux OS's so hope this isn't a stupid question!!

我是Linux操作系统的新手,希望这不是一个愚蠢的问题!

Software:
Windows 10 Pro
Docker for Windows (1.13.0-beta38 (9805))
SQL Server Management Studio v17.0 RC1

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

Issue: I'm trying to connect to my SQL Server Linux container using SSMS. 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.

问题:我尝试使用ssm连接到我的SQL Server Linux容器。它没有工作,所以查看文档时,似乎需要在SQL Server Linux映像之上安装SQL Server工具(页面底部)。

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:未找到命令

Steps to reproduce error:

步骤来复制错误:

  • Pull latest microsoft/sql-server-linux image
  • 把最新的微软/ 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(!)密码' - p1433:1433 -d microsoft/mssql-server-linux
  • Attach to container using: docker exec -it <container_id> /bin/bash
  • 使用:docker exec - /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 -key

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安装旋度,但是我得到的是E:无法定位包旋度
  • 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连接到容器,使用以下服务器名(我使用的是在docker运行命令中指定的凭据使用SQL身份验证):

  • localhost:1433
  • localhost: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.
I used localhost as the server name (defaults to port 1433)
I also mounted a volume to the container as part of my docker-compose.yml file:

解决方案(某种)好的,我让它起作用了。但我不能百分之百地确定这是怎么回事。我使用localhost作为服务器名(默认为端口1433),我还将一个卷作为docker- composer的一部分挂载到容器中。yml文件:

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

SQL Server Linux Logs

SQL服务器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.

1 个解决方案

#1


4  

I had the same issue and the comment from Ed Harper resolved my issue:

我有同样的问题,艾德·哈珀的评论解决了我的问题:

SSMS uses a comma rather than a colon to delimit between server name and port number. Try localhost,1433. – Ed Harper Jan 23 at 12:52

SSMS使用逗号而不是冒号分隔服务器名和端口号。尝试localhost,1433。1月23日12:52

The server name field in SMSS required a format of locahost,[dockerport]. So in my case I needed:

SMSS中的服务器名字段需要本地化主机[dockerport]的格式。所以我需要:

localhost,32768

本地主机,32768

#1


4  

I had the same issue and the comment from Ed Harper resolved my issue:

我有同样的问题,艾德·哈珀的评论解决了我的问题:

SSMS uses a comma rather than a colon to delimit between server name and port number. Try localhost,1433. – Ed Harper Jan 23 at 12:52

SSMS使用逗号而不是冒号分隔服务器名和端口号。尝试localhost,1433。1月23日12:52

The server name field in SMSS required a format of locahost,[dockerport]. So in my case I needed:

SMSS中的服务器名字段需要本地化主机[dockerport]的格式。所以我需要:

localhost,32768

本地主机,32768