zoukankan      html  css  js  c++  java
  • ubuntu 16.0.4 中docker 部署 sqlserver 2017(四)

    1、 从 Docker Hub 中拉出 SQL Server 2017 Linux 容器映像

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

    2、显示所有可用的镜像

    $ docker images

    3、运行一个镜像(也就相当于使用已有的镜像创建一个实例),其中 

    <YourStrong!Passw0rd> 参数需要自己填 ,YourStrong!Passw0rd:设置 SA密码  
     --name sql1  为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。

      其中ACCEPT_EULA=Y的意思是同意许可协议,必选;MSSQL_SA_PASSWORD为密码,要求是最少8位的强密码,要有大写字母,小写字母,数字以及特殊符号,不然会有一个大坑(docker启动sqlserver容器后过几秒就停止了);

     -p 1433:1433 绑定端口,--net=host代表主机模式。docker和主机共享端口

    $ sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>'  -p 1433:1433 --net=host --name sql1  -d mcr.microsoft.com/mssql/server:2017-latest

     以下使用sqlcdm连接,这里使用sqlcmd的安装

     导入公共存储库 GPG 密钥

    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

    注册 Microsoft Ubuntu 存储库

    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list

    更新源列表,并使用 unixODBC 开发人员包运行安装命令

    sudo apt-get update 
    sudo apt-get install mssql-tools unixodbc-dev

    添加/opt/mssql-tools/bin/到你路径bash shell 中的环境变量

    若要使sqlcmd/bcp可从登录会话的 bash shell 访问修改你路径中 ~/.bash_profile文件使用以下命令:

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

    若要使sqlcmd/bcp能从交互式/非登录会话,bash shell 访问修改路径中 ~/.bashrc文件使用以下命令:

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
    source ~/.bashrc

     以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例

    使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd。 在本教程中,用户进行本地连接,因此服务器名称为 localhost。 用户名为 SA,密码是在安装过程中为 SA 帐户提供的密码。

    sqlcmd -S localhost -U SA -P '<YourPassword>'

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

    如果连接失败,请首先尝试根据错误消息诊断问题。 然后查看连接故障排除建议

    创建和查询数据

    下面各部分将逐步介绍如何使用 sqlcmd 新建数据库、添加数据并运行简单查询。

    新建数据库

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

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

    CREATE DATABASE TestDB

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

    SELECT Name from sys.Databases

    前两个命令没有立即执行。 必须在新行中键入 GO 才能执行以前的命令:

    GO

    插入数据

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

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

    USE TestDB

    创建名为 Inventory 的新表:

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)

    将数据插入新表:

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);

    要执行上述命令的类型 GO

    GO

    选择数据

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

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

    SELECT * FROM Inventory WHERE quantity > 152;

    执行命令:

    GO

    退出 sqlcmd 命令提示符

     要结束 sqlcmd 会话,请键入 QUIT

    QUIT
  • 相关阅读:
    jenkins集成python时出现"Non-ASCII character 'xe6' in file"错误解决方法
    【转】/bin/bash^M: bad interpreter: No such file or directory
    解决Jenkins中执行jmeter脚本后不能发报告(原报告被覆盖、新报告无法保存)的问题
    【转】shell脚本中如何传入参数
    Hibernate学习笔记
    struts2学习笔记
    oracle表空间相关SQL语句
    javaMail
    Mysql 5.7.7
    设计模式之享元模式
  • 原文地址:https://www.cnblogs.com/hank-hu/p/10234743.html
Copyright © 2011-2022 走看看