我正在尝试使用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。
我也有Windows pc,并且可以使用sql server management studio轻松连接。即使我可以使用该Windows PC连接其他PC。但是,当我尝试使用其ip将我的mac连接到Windows pc时,它也会给出相同的错误。
我已使用SQL Server配置管理器在Windows上启用了TCP / IP连接。但是在Mac上没有这样的东西。
答案 0 :(得分:0)
您可能会在MAC上收到此错误,因为在后台运行docker时,默认情况下它仅使用2GB内存,这不足以运行SQL Server,因为它至少需要3.25 GB,理想情况下,我们应该将其指向4GB的内存。在您的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
这将设置密码,并将端口1433用于SQL Server(这是默认端口)。要确认是否已创建映像并在docker上运行SQL Server,请执行以下命令以检查日志。
命令3:
docker ps
要检查docker历史记录中的所有实例(即,如果尝试此SQL连接/执行之前已安装docker),请运行以下命令,它将为您提供所有已创建实例的所有日志< / p>
命令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 Server的尝试。祝一切顺利!