运维利器Docker部署 Microsoft SQLServer2017

运维利器Docker部署 Microsoft SQLServer2017

    • 前言
    • 环境概述
    • 关闭防火墙
    • 启动Docker
    • 获取 SQLServer2017 容器镜像
    • 启动 SQLServer2017
    • 启动 SQLServer2017 失败原因
    • 更新登录密码
    • sqlcmd 连接
    • 退出 sqlcmd 命令提示符
    • 使用客户端连接

前言

1、本篇文章省略 docker 和 docker-compose 安装配置过程,如果大家还对 docker 不了解的自行百度!

环境概述

  • CentOS 7.6
  • Docker 18.09.6
  • Docker-compose 1.23.2

关闭防火墙

 systemctl stop firewalld.service

启动Docker

 systemctl start docker

获取 SQLServer2017 容器镜像

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

启动 SQLServer2017

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

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=d@efaX4Wp10" \
   -p 1433:1433 --name sqlserver \
   -d mcr.microsoft.com/mssql/server:2017-latest

启动 SQLServer2017 失败原因

sqlservr: This program requires a machine with at least 2000 megabytes of memory.
/opt/mssql/bin/sqlservr: This program requires a machine with at least 2000 megabytes of memory.

至少需要 2000M 的内存才能启动 SQLServer2017 ,将虚拟机的内存调整至 3G , 容器正常启动!

更新登录密码

SA 帐户是安装过程中在 SQL Server 实例上创建的系统管理员。 创建 SQL Server 容器后,通过在容器中运行 echo $MSSQL_SA_PASSWORD,可发现指定的 MSSQL_SA_PASSWORD 环境变量。 出于安全考虑,请考虑更改 SA 密码。
选择 SA 用户要使用的强密码。
使用 docker exec 运行sqlcmd ,以使用 Transact-SQL 更改密码。 在下面的示例中, 将旧密码 d@efaX4Wp10 更改为 QFsdfW@p10G

docker exec -it sqlserver /opt/mssql-tools/bin/sqlcmd \
   -S localhost -U SA -P "d@efaX4Wp10" \
   -Q 'ALTER LOGIN SA WITH PASSWORD="QFsdfW@p10G"'

sqlcmd 连接

# 进入 sqlserver 容器内部
docker exec -it sqlserver "bash"
# 进入容器内部,使用 sqlcmd 进行本地连接。 默认情况下,sqlcmd 不在路径之中,因此需要指定完整路径。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "d@efaX4Wp10"
# 创建数据库
CREATE DATABASE TestDB
# 提交SQL语句,回车不会自动提交SQL语句
GO

退出 sqlcmd 命令提示符

QUIT

使用客户端连接

宿主机IP: 192.168.14.137
连接主机端口:192.168.14.137:1433

你可能感兴趣的:(SQLServer)