如何在mac上使用docker连接sql服务器



我正在尝试使用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

它显示我的容器正在运行。但当我尝试使用数据库可视化工具连接时,它会抛出一个错误。到主机localhost端口1434的TCP/IP连接失败。错误:"驱动程序收到意外的预登录响应。请验证连接属性,并检查SQL Server实例是否在主机上运行并接受端口上的TCP/IP连接。此驱动程序只能与SQL Server 2000或更高版本一起使用。"。ClientConnectionId:6a802ae0-7203-411d-a599-4c1de997d843。

我还随身携带了windowspc,可以使用sqlservermanagementstudio轻松连接。即使我也可以使用windows pc连接其他pc。但当我试图使用其ip将我的mac连接到windows pc时,也会出现同样的错误。

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

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

一旦您保存并重新启动具有4GB内存分配的docker以运行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 server是否在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服务器。祝你一切顺利!

相关内容

  • 没有找到相关文章

最新更新