sql-server - 如何在Mac上使用Docker连接SQL Server?

标签 sql-server macos docker dbvisualizer

我正在尝试使用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上没有这样的东西。

最佳答案

您可能会在MAC上收到此错误,因为在后台运行docker时,默认情况下它仅使用2GB内存,这不足以运行SQL Server,因为它至少需要3.25 GB,理想情况下,我们应将其指向4GB内存。在您的Docker上使用以上详细信息更新首选项部分。保存并重新启动 docker ,您可以检查以下步骤以查看是否对您的MAC有帮助。我是使用Azure Data Studio和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

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

命令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 Server的尝试。祝一切顺利!

关于sql-server - 如何在Mac上使用Docker连接SQL Server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53437167/

相关文章:

docker - 在 Fedora 28 上安装 docker-ce

node.js - 从 docker 构建时安装 nodejs 时出错

sql-server - 在没有主键的表的新列上填充行号

c# - 使用 Entity Framework 6.1 CodeFirst 的 SQL Server 2014 内存优化表

macos - 为什么代码.快捷方式在 OSX 上不起作用?

macos - 相当于 Mac 上的 MFMailComposer

docker - 通过docker访问的Swagger UI不起作用

c# - 为什么应用程序会抛出多个 "Operation is not valid due to the current state of the object"错误?

mysql - 在 MS SQL Server mgt studio 中,有没有办法格式化选择结果,如 mysql\G

c++ - free() 阻塞其他线程,系统变慢