如何在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?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Docker 在 SQL Server 数据库上运行 EF Core 迁移?
如何在 Mac(或 Linux)上连接/运行 Joomla 到远程 Microsoft SQL 服务器/与远程 Microsoft SQL 服务器连接/运行?