由于小编在这学期要学习数据库原理这门课程,需要用到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 运行的提示窗口,状态栏上也有个小鲸鱼的图标。
手动下载安装
如果需要手动下载,请点击以下链接下载 Stable 或 Edge 版本的 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 密码。
- 选择 SA 用户要使用的强密码。
- 使用 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
。
- 使用
docker exec -it
命令在运行的容器内部启动交互式Bash Shell
。 在下面的示例中,sql1 是在创建容器时由 --name 参数指定的名称。
sudo docker exec -it sql1 "bash"
- 在容器内部使用 sqlcmd 进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
- 如果成功,应会显示 sqlcmd 命令提示符:1>。
利用Navicat可视化工具连接Sql Server
下载Navicat
因为正版只有14天的试用期,没Money的小编只有安排破解版了,在这里把安装包也分享给大家:
下载好后添加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的详细教程,另外如果大家想了解更多的技巧的可以去我的博客(相逢),我们一起讨论!如果哪里有写的不好的地方,还希望大家提出来,我加以修正!