zoukankan      html  css  js  c++  java
  • mac安装sqlserver

    先决条件

    • 适用于支持的任一 Linux 分发版的 Docker 引擎 1.8 以上版本,或适用于 Mac/Windows 的 Docker。 有关详细信息,请参阅 Install Docker(安装 Docker)。
    • Docker overlay2存储驱动程序。 这是大多数用户的默认设置。 如果发现你未使用此存储提供程序并且需要进行更改, 请参阅docker 文档中有关配置 overlay2的说明和警告。
    • 最小 2 GB 的磁盘空间。
    • 最小 2 GB RAM。
    • Linux 上的 SQL Server 的系统要求

    请求并运行容器映像

    在开始以下步骤之前, 请确保已在本文顶部选择了首选 shell (bash、PowerShell 或 cmd)。

    1. 从 Microsoft 容器注册表拉取 SQL Server 2017 Linux 容器映像。

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

       提示

      若要尝试 SQL Server 2019 预览图像, 请参阅本文的 SQL Server 2019 preview 版本

      前一个命令请求最新的 SQL Server 2017 容器映像。 如果想请求某个特定映像,需添加一个冒号和标记名称(例如 mcr.microsoft.com/mssql/server:2017-GA-ubuntu。 若要查看所有可用映像, 请参阅mssql-Server Docker 中心页

      对于本文中的 bash 命令, sudo将使用。 在 MacOS 上sudo , 可能不是必需的。 在 Linux 上, 如果不希望使用sudo运行 docker, 可以配置docker组, 并将用户添加到该组。 有关详细信息, 请参阅适用于 Linux 的安装后步骤

    2. 要使用 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 命令检查错误日志。

       备注

      默认情况下,这会创建一个使用 SQL Server 2017 开发人员版的容器。 在容器中运行生产版本的过程略有不同。 有关详细信息,请参阅运行生产容器映像

      下表对前一个 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 为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。
      mcr.microsoft.com/mssql/server:2017-latest SQL Server 2017 Linux 容器映像。
    3. 要查看 Docker 容器,请使用 docker ps 命令。

      sudo docker ps -a
      

      将看到与如下屏幕截图相似的输出:

      Docker ps 命令输出

    4. 如果“状态”列显示“正常运行”,则 SQL Server 将在容器中运行,并侦听“端口”列中指定的端口 。 如果 SQL Server 容器的“状态”列显示“已退出”,则参阅配置指南的疑难解答部分 。

    -h(主机名)参数也非常有用,但为了简单起见,本教程中不使用它。 这会将容器的内部名称更改为一个自定义值。 也就是以下 Transact-SQL 查询中返回的名称:

    SELECT @@SERVERNAME,
        SERVERPROPERTY('ComputerNamePhysicalNetBIOS'),
        SERVERPROPERTY('MachineName'),
        SERVERPROPERTY('ServerName')
    

    将 -h 和 --name 设为相同的值是一种很好的方法,可以轻松地识别目标容器。

    更改 SA 密码

    SA 帐户是安装过程中在 SQL Server 实例上创建的系统管理员。 创建 SQL Server 容器后,通过在容器中运行 echo $MSSQL_SA_PASSWORD,可发现指定的 MSSQL_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"
      
    2. 一旦位于容器内部,使用 sqlcmd 进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。

      /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong!Passw0rd>"
      

       提示

      可以省略命令行上提示要输入的密码。

    3. 如果成功,应会显示 sqlcmd 命令提示符:1>

    创建和查询数据

    以下部分将引导你使用 sqlcmd 和 Transact-SQL 完成新建数据库、添加数据并运行简单查询的整个过程。

    新建数据库

    以下步骤创建一个名为 TestDB 的新数据库。

    1. 在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:

      CREATE DATABASE TestDB
      
    2. 在下一行中,编写一个查询以返回服务器上所有数据库的名称:

      SELECT Name from sys.Databases
      
    3. 前两个命令没有立即执行。 必须在新行中键入 GO 才能执行以前的命令:

      GO
      

    插入数据

    接下来创建一个新表 Inventory,然后插入两个新行。

    1. 在 sqlcmd 命令提示符中,将上下文切换到新的 TestDB 数据库:

      USE TestDB
      
    2. 创建名为 Inventory 的新表:

      CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
      
    3. 将数据插入新表:

      INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
      
    4. 要执行上述命令的类型 GO

      GO
      

    选择数据

    现在,运行查询以从 Inventory 表返回数据。

    1. 通过 sqlcmd 命令提示符输入查询,以返回 Inventory 表中数量大于 152 的行:

      SELECT * FROM Inventory WHERE quantity > 152;
      
    2. 执行命令:

      GO
      

    退出 sqlcmd 命令提示符

    1. 要结束 sqlcmd 会话,请键入 QUIT

      QUIT
      
    2. 要在容器中退出交互式命令提示,请键入 exit。 退出交互式 Bash Shell 后,容器将继续运行。

    从容器外连接

    还可以从支持 SQL 连接的任何 Linux、Windows 或 macOS 外部工具连接到 Docker 计算机上的 SQL Server 实例。

    以下步骤在容器外使用 sqlcmd 连接在容器中运行的 SQL Server。 这些步骤假定你已在容器外安装了 SQL Server 命令行工具。 使用其他工具时, 相同的原则同样适用, 但连接过程对于每个工具都是唯一的。

    1. 查找承载容器的计算机的 IP 地址。 在 Linux 上,使用 ifconfig 或 ip addr。在 Windows 上,使用 ipconfig。

    2. 对于本示例, 请在客户端计算机上安装sqlcmd工具。 有关详细信息, 请参阅在 Windows 上安装 sqlcmd在 Linux 上安装 sqlcmd

    3. 运行 sqlcmd,指定 IP 地址和映射容器中的端口 1433 的端口。 在此示例中, 这是主机上的相同端口1433。 如果在主机计算机上指定了其他映射端口, 则可在此处使用。

      sqlcmd -S <ip_address>,1433 -U SA -P "<YourNewStrong!Passw0rd>"
      
    4. 运行 Transact-SQL 命令。 完成后,键入 QUIT

    连接到 SQL Server 的其他常见工具包括:

    删除容器

    如果想删除本教程中使用的 SQL Server 容器,请运行以下命令:

  • 相关阅读:
    298. Binary Tree Longest Consecutive Sequence
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    163. Missing Ranges
    336. Palindrome Pairs
    727. Minimum Window Subsequence
    211. Add and Search Word
    年底购物狂欢,移动支付安全不容忽视
    成为程序员前需要做的10件事
    全球首推iOS应用防破解技术!
  • 原文地址:https://www.cnblogs.com/longc-pub/p/11268724.html
Copyright © 2011-2022 走看看