如何在mac上使用docker连接sql server?

Posted

技术标签:

【中文标题】如何在mac上使用docker连接sql server?【英文标题】:How to connect sql server using docker on mac? 【发布时间】:2018-11-22 19:36:39 【问题描述】:

我正在尝试使用 docker 连接到 sql server。我已使用此命令成功启用容器

sudo docker run -d --name aakash -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Maximus6hero@" -p 1434:1434 microsoft/mssql-server-linux

docker ps
3e41723b93d5        microsoft/mssql-server-linux   "/opt/mssql/bin/sqls…"   About an hour ago   Up About an hour    1433/tcp, 0.0.0.0:1434->1434/tcp   aakash

它表明我的容器正在运行。 但是,当我尝试使用 db 可视化工具进行连接时,它会引发错误。 与主机 localhost 端口 1434 的 TCP/IP 连接失败。错误:“驱动程序收到意外的登录前响应。验证连接属性并检查 SQL Server 实例是否正在主机上运行并在端口接受 TCP/IP 连接。此驱动程序只能用于 SQL Server 2000或更晚。”。 ClientConnectionId:6a802ae0-7203-411d-a599-4c1de997d843。

我也有 Windows 电脑,我可以使用 sql server management studio 轻松连接。即使我可以使用该 Windows 电脑连接其他电脑。但是当我尝试使用它的 ip 将我的 mac 连接到 windows pc 时,它也会给出同样的错误。

我已经使用 sql server 配置管理器在 windows 上启用了 tcp/ip 连接。但是mac上没有这样的东西。

【问题讨论】:

【参考方案1】:

您的 MAC 上可能会出现此错误,因为当您在后台运行 docker 时,默认情况下它仅使用 2GB 内存,这不足以运行 SQL 服务器,因为它至少需要 3.25 GB,理想情况下,我们应该将其指向 4GB 内存。使用 docker 上的上述详细信息更新首选项部分。保存并重新启动 docker,您可以检查以下步骤,看看这是否对您的 MAC 有帮助。我使用 Azure Data Studio 和 Docker 完成了这项工作。

一旦您保存并重新启动 docker 并使用 4GB 的内存分配让 docker 运行,您需要做的就是拉取 sql server 的 docker 映像并下载它。这可以通过终端上的以下命令来完成。仅供参考,我正在使用以下 bash 命令:

命令 1:

sudo docker pull mcr.microsoft.com/mssql/server:2017-latest

这将拉取最新的 vesion docker 镜像并下载。完成后,您需要在服务器上为您的数据库设置 SQL 身份验证。遵循以下命令:

命令 2:

    sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<SetYourPasswordHere>' \
   -p 1433:1433 --name sql1 \
   -d mcr.microsoft.com/mssql/server:2017-latest

这将设置您的密码并使用 SQL Server 的端口 1433(这是默认端口)。要确认映像是否已创建且 SQL 服务器是否在 docker 上运行,请执行以下命令检查日志。

命令 3:

docker ps

要检查您的 docker 历史记录中的所有实例(即,如果您在尝试此 SQL 连接/执行之前已经安装了 docker),请运行以下命令,它将为您提供您创建的所有实例的所有日志

命令 4:

docker ps -a 

docker ps -all

一旦您完成了上述步骤并看到 docker 已创建 SQL 实例,您需要转到 Azure Data Studio 并设置以下凭据以访问您刚刚使用 Docker 在上面创建的服务器。

Server: localhost
Authentication Type: SQL Authentication
Username: sa
Password: <Check Command 2 to see what you entered in the password where it says SetYourPasswordHere>

希望这有助于您在 MAC 上运行 SQL 服务器。万事如意!

【讨论】:

以上是关于如何在mac上使用docker连接sql server?的主要内容,如果未能解决你的问题,请参考以下文章

在Mac上使用docker+sql server

php连接sql serve后如何执行sql语句

如何使用 Docker 在 SQL Server 数据库上运行 EF Core 迁移?

Docker 容器中的 Npm run serve

如何在 Mac(或 Linux)上连接/运行 Joomla 到远程 Microsoft SQL 服务器/与远程 Microsoft SQL 服务器连接/运行?

在docker上使用laravel时无法连接到mysql数据库(未找到,pdo,连接被拒绝)