在MAC上如何使用SQL Server

由于小编在这学期要学习数据库原理这门课程,需要用到SQL Server,然而大家都知道SQL Server目前是只能在Windows上使用,我们在mac电脑上如何使用呢?我们可以借助目前比较火的Docker来完成,接下来就给大家介绍如何在docker上部署。

Docker介绍

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

MacOS Docker 安装

使用 Homebrew 安装

macOS 我们可以使用 Homebrew 来安装 Docker。

Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用Homebrew Cask来进行安装,在终端运行以下命令:

$ brew cask install docker

安装成功:

==> Downloading https://download.docker.com/mac/stable/42716/Docker.dmg
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'docker'.
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
🍺  docker was successfully installed!

在载入Docker app后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有个小鲸鱼的图标。

手动下载安装

如果需要手动下载,请点击以下链接下载 StableEdge 版本的 Docker for Mac。

如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application 文件夹即可。


从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登陆密码,输入即可。
点击顶部状态栏中的鲸鱼图标会弹出操作菜单。




第一次点击图标,可能会看到这个安装成功的界面,点击 "`Got it!`" 可以关闭这个窗口。

启动终端后,通过命令可以检查安装后的 Docker 版本。

docker --version                                  
Docker version 19.03.5, build 633a0ea

之后我们可以通过 docker info 来查看是否配置成功。

docker info 

镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com
在之前的版本中,Docker客户端有修改镜像的界面,但是更新版本之后,去除了这个界面,那怎么来修改镜像呢?网上都是Linux的教程,并没有Mac的教程,这两个系统之间文件目录有所差别,费了九牛二虎之力找到了daemon.json这个文件。

cd .docker

daemon.json就在这个文件夹,将里面的内容修改为:

{
    "experimental":false,
    "debug":true,
    "registry-mirrors":["http://hub-mirror.c.163.com"]
}

重启,Docker就会 应用配置的镜像地址。


以上图片就是配置成功的样式。 我们也可以通过 docker info 来查看是否配置成功。
docker info
....
 Registry Mirrors:
  http://hub-mirror.c.163.com/
 Live Restore Enabled: false
 Product License: Community Engine

拉取并运行 SQL Server 容器映像

拉取并运行SQL Server 容器映像,参考了微软的官方开发文档.

从 Microsoft 容器注册表中拉取 SQL Server 2017 Linux 容器映像,打开我们的终端,输入命令:

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

这里会将sql server for linux docker下载到我们计算机上。

使用 Docker 运行容器映像

要使用 Docker 运行容器映像,可以从 Bash Shell (Linux/macOS) 或提升的 PowerShell 命令提示符使用以下命令。(也就是终端)。

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

备注:
密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码的长度必须至少为 8 个字符,并且必须包含以下四种字符中的三种:大写字母、小写字母、十进制数字和符号。 你可以通过执行 docker logs 命令检查错误日志。

下表对前一个 docker run 示例中的参数进行了说明:

参数 说明
-e “ACCEPT_EULA=Y” 将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。
-e “SA_PASSWORD=<YourStrong@Passw0rd>” 指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。
-p 1433:1433 将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,并对主机上的端口 1433 公开。
–name sql1 为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。
-d mcr.microsoft.com/mssql/server:2017-latest SQL Server 2017 Linux 容器映像。

要查看 Docker 容器,请使用 docker ps 命令。

sudo docker ps -a

应会看到与以下类似的输出:

CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS                     PORTS               NAMES
78c2deca0bd6        mcr.microsoft.com/mssql/server:2017-latest   "/opt/mssql/bin/nonr…"   30 minutes ago      Exited (0) 2 minutes ago                       sql1

如果“状态”列显示“正常运行”,则 SQL Server 将在容器中运行,并侦听“端口”列中指定的端口 。

更改 SA 密码

SA 帐户是安装过程中在 SQL Server 实例上创建的系统管理员。 创建 SQL Server 容器后,通过在容器中运行 echo $SA_PASSWORD,可发现指定的 SA_PASSWORD 环境变量。 出于安全考虑,请考虑更改 SA 密码。

  1. 选择 SA 用户要使用的强密码。
  2. 使用 docker exec 运行sqlcmd ,以使用 Transact-SQL 更改密码。 在下面的示例中,将旧密码 <YourStrong!Passw0rd>和新密码 <YourNewStrong!Passw0rd> 替换为你自己的密码值。
sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P "<YourStrong@Passw0rd>" \
   -Q 'ALTER LOGIN SA WITH PASSWORD="<YourNewStrong@Passw0rd>"'

连接到 SQL Server

下列步骤在容器内部使用SQL Server命令行工具sqlcmd 来连接 SQL Server

  1. 使用 docker exec -it 命令在运行的容器内部启动交互式 Bash Shell。 在下面的示例中,sql1 是在创建容器时由 --name 参数指定的名称。
sudo docker exec -it sql1 "bash"
  1. 在容器内部使用 sqlcmd 进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
  1. 如果成功,应会显示 sqlcmd 命令提示符:1>。

利用Navicat可视化工具连接Sql Server

下载Navicat

因为正版只有14天的试用期,没Money的小编只有安排破解版了,在这里把安装包也分享给大家:

链接:https://pan.baidu.com/s/198LYSswTRqlVUmST8ZepeQ 密码:cg5s

下载好后添加Sql Server数据库连接:


提示:密码一定不要填错,如果密码填错,会出现以下错误:

[42000] [FreeTDS][SQL Server]Login failed for user 'SA'. (18456)
[08001] [FreeTDS][SQL Server]Unable to connect to data source (0)

最后,连接成功!


以上就是小编本次给大家分享的在Mac上如何使用SQL Server的详细教程,另外如果大家想了解更多的技巧的可以去我的博客(相逢),我们一起讨论!如果哪里有写的不好的地方,还希望大家提出来,我加以修正!

posted @ 2020-02-23 10:38  北徯。  阅读(1880)  评论(2编辑  收藏  举报