首页 > 数据库 >在Ubuntu下的docker下安装sqlserver并指定排序规则和语言

在Ubuntu下的docker下安装sqlserver并指定排序规则和语言

时间:2023-07-11 21:32:16浏览次数:47  
标签:容器 CI 排序 Ubuntu sqlserver Server SQL docker General

最近在公司弄了个小程序,随便架了个sqlserver,再看微软官网的时候发现可以在docker下安装sqlserver,随便实践记录下


先上微软的连接地址

Docker:为 Linux 上的 SQL Server 安装容器 - SQL Server | Microsoft Learn

这个是sqlserver2017的,其他版本也是类似的,其实都是微软docker了一个linux,再在里面安装了sqlserver

下载安装过程

1、从 Microsoft 容器注册表中请求 SQL Server 2017 (14.x) Linux 容器映像。

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

注:也可以指定版本,进下面地址查看

mssql-server Docker hub 页


2、要使用 Docker 运行 Linux 容器映像,可以从 Bash Shell 命令提示符使用以下命令。

sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Wind@147258" \
   -p 1433:1433 --name sqlserver2017 --hostname sqlserver2017 \
   -d \
   mcr.microsoft.com/mssql/server:2017-latest

密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。

默认情况下,会创建一个使用 SQL Server 开发人员版的容器。使用以上的参数,安装的版本是排序规则是Latin1_General_100_CI_AS_SC、语言是Englisg


如果,原先数据不是使用的这个排序,或在新建数据库下,在数据库表中新增中文会乱码,所以需求是要指定排序规则,并指定数据库的文件放在当前的ubuntu下的指定目录(这样有一个非常大大好处,即使删除了sqlserver的docker,但数据库文件不会删除),综合以上,所以要再加参数,完整如下

sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Wind@147258" \
   -e "MSSQL_COLLATION=Chinese_PRC_CI_AS"  -e "MSSQL_LCID=2052" \
   -p 1433:1433 --name sqlserver2017 --hostname sqlserver2017 \
   -v sqlserver2017test:/var/opt/  \
   -v /var/opt/mssql2017:/var/opt/mssql --restart=always \
   -d mcr.microsoft.com/mssql/server:2017-latest

上面我是指定了SQL Server 排序规则为Chinese_PRC_CI_AS(即中文,其他排序规则往下翻), SQL Server 的语言 ID为2052(即中文,其他语言往下翻,这个根据自己需求设定),创建了数据卷sqlserver2017test,并设置了与真实系统目录的映射。


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

参数

说明

-e "ACCEPT_EULA=Y"

将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。

-e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>"

指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。

-e "MSSQL_COLLATION=<SQL_Server_collation>"

指定自定义 SQL Server 排序规则,而不使用默认值 SQL_Latin1_General_CP1_CI_AS。

-p 1433:1433

将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,此容器端口随后会对主机上的 TCP 端口 1433 公开。

--name sql1

为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。

--hostname sql1

用于显式设置容器主机名。 如果未指定主机名,则主机名默认为容器 ID,这是随机生成的系统 GUID。

-d

在后台运行容器(守护程序)。

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

SQL Server Linux 容器映像。

-v sqlserver2017:/var/opt/  




-v /var/opt/mssql2017:/var/opt/mssql

设置创建的docke的数据卷名称为sqlserver2017data


映射当前系统的指定目录/var/opt/mssql2017与数据卷sqlserver2017data里的/var/opt/mssql(这个是sqlserver的数据存储的目录,不可修改)

--restart=always

重启后自动启动

SQL Server 排序规则地址

 默认服务器排序规则是在 SQL Server 安装过程中设置的,它将成为系统数据库和所有用户数据库的默认排序规则。

下表显示由操作系统 (OS) 区域设置确定的默认排序规则标识,其中包括它们的 Windows 和 SQL 语言代码标识符 (LCID):

(我复制了部分,完整的排序规则见下面网页排序规则和 Unicode 支持 - SQL Server | Microsoft Learn

Windows 区域设置

Windows LCID

SQL LCID

默认排序规则

加泰罗尼亚语(加泰罗尼亚)

0x0403

0x0409

Latin1_General_CI_AS

中文(香港特别行政区)

0x0c04

0x0404

Chinese_Taiwan_Stroke_CI_AS

中文(澳门特别行政区)

0x1404

0x1404

Latin1_General_CI_AI

中文(澳门特别行政区)

0x21404

0x21404

Latin1_General_CI_AI

中文(中华人民共和国)

0x0804

0x0804

Chinese_PRC_CI_AS

中文(中华人民共和国)

0x20804

0x20804

Chinese_PRC_Stroke_CI_AS

中文(新加坡)

0x1004

0x0804

Chinese_PRC_CI_AS

中文(新加坡)

0x21004

0x20804

Chinese_PRC_Stroke_CI_AS

中文(台湾)

0x30404

0x30404

Chinese_Taiwan_Bopomofo_CI_AS

中文(台湾)

0x0404

0x0404

Chinese_Taiwan_Stroke_CI_AS

科西嘉语(法国)

0x0483

0x0483

Latin1_General_CI_AI

克罗地亚语(波斯尼亚和黑塞哥维那,拉丁语)

0x101a

0x041a

Croatian_CI_AS

克罗地亚语(克罗地亚)

0x041a

0x041a

Croatian_CI_AS

捷克语(捷克共和国)

0x0405

0x0405

Czech_CI_AS

英语(菲律宾)

0x3409

0x0409

Latin1_General_CI_AS

英语(新加坡)

0x4809

0x0409

Latin1_General_CI_AS

英语(南非)

0x1c09

0x0409

Latin1_General_CI_AS

英语(特立尼达和多巴哥)

0x2c09

0x0409

Latin1_General_CI_AS

英语(英国)

0x0809

0x0409

Latin1_General_CI_AS

英语(美国)

0x0409

0x0409

SQL_Latin1_General_CP1_CI_AS

 SQL Server 的语言 ID

sys.syslanguages (Transact-SQL) - SQL Server | Microsoft Learn

数据库引擎包含下列已安装的语言。

用英语表示的名称

Windows LCID

数据库引擎消息组 ID

英语

2052

2052

德语

1031

1031

法语

1036

1036

日语

1041

1041

丹麦语

1030

1030

西班牙语

3082

3082

意大利语

1040

1040

荷兰语

1043

1043

挪威语

2068

2068

葡萄牙语

2070

2070

芬兰语

1035

1035

瑞典语

1053

1053

捷克语

1029

1029

匈牙利语

1038

1038

波兰语

1045

1045

罗马尼亚语

1048

1048

克罗地亚语

1050

1050

斯洛伐克语

1051

1051

斯洛文尼亚语

1060

1060

希腊语

1032

1032

保加利亚语

1026

1026

俄语

1049

1049

土耳其语

1055

1055

英语(英国)

2057

2052

爱沙尼亚语

1061

1061

拉脱维亚语

1062

1062

立陶宛语

1063

1063

葡萄牙语(巴西)

1046

1046

繁体中文

1028

1028

韩语

1042

1042

简体中文

2052

2052

阿拉伯语

1025

1025

泰语

1054

1054

标签:容器,CI,排序,Ubuntu,sqlserver,Server,SQL,docker,General
From: https://blog.51cto.com/395260191/6692385

相关文章

  • Docker部署
    概述最近在学习后端的各种中间件,如果一个个安装,估计所有的时间都得在部署运维上面了,没有时间编写测试代码了,因此学习记录下docker的方法,意在简化部署方式,将主要精力放在研究使用中间件上。官网下载安装dockerhttps://docs.docker.com/desktop/install/docker流程1.dockerpul......
  • Docker学习路线2:底层技术
    了解驱动Docker的核心技术将让您更深入地了解Docker的工作原理,并有助于您更有效地使用该平台。Linux容器(LXC)Linux容器(LXC)是Docker的基础。LXC是一种轻量级的虚拟化解决方案,允许多个隔离的Linux系统在单个主机上运行,无需全功能的虚拟化。LXC有效地以安全和优化的方式隔离应用程......
  • 在WinServer 2022 Core 上安装SCVMM2022和SqlServer2022
    在WindowsServer2022Core上安装SystemCenterVirtualMachineManager(VMM)2022管理服务器和SqlServer2022CU5系统环境如下:OS:windowsserver2022CoreDataCenterDB:SqlServer2022withCU5ADK: Windows11版本22H2的ADK: https://learn.microsoft.com/zh-cn/wi......
  • SqlServer取当前日期0点到23点59分59秒
    --2023-07-1100:00:00.0002023-07-1123:59:59.000SELECTCONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120)),DATEADD(SECOND,-1,CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE()+1,120)))--2023-07-1100:00:002023-07-1123:59:59selectconvert(varchar(......
  • ubuntu20.04安装mongodb步骤
    注:虚拟机无法运行mongodb5.0以上的版本1、wget-qO-https://www.mongodb.org/static/pgp/server-4.4.asc|apt-keyadd-导入并设置公钥2、echo"deb[arch=amd64,arm64]https://repo.mongodb.org/apt/ubuntufocal/mongodb-org/4.4multiverse"|tee/ect/apt/sources.list.......
  • Docker网络模式和案例分享
    Docker提供了多种网络模式和功能,以便在容器间建立网络通信和连接外部网络1.默认网络模式(bridge):Docker默认使用bridge网络模式,创建一个名为docker0的虚拟网桥,并为每个容器分配一个IP地址。容器间可以通过IP地址相互通信2.主机模式(host):使用主机模式时,容器直接使用宿主机......
  • 下载Ubuntu系统
    Ubuntu官方网站下载地址:https://ubuntu.com/download/server#download清华大学开源软件镜像站网址:https://mirrors.tuna.tsinghua.edu.cn/详细下载步骤:1》》打开网站,在网站首页搜索框内输入“Ubuntu”之后进入如下的页面, 2》》这个版本“22.04.1/”是截止发文时间最新的......
  • centos7 用docker搭建Mysql主从
    安装Docker和DockerCompose:安装预置:sudoyumupdateyuminstallpython3-pipsudoyumgroupinstall"DevelopmentTools"sudoyuminstallepel-releasesudoyuminstallopenssl-devellibffi-develpython3-devel安装docker:yumremovedockerdocker-clientdocker-......
  • docker pull拉 x509: certificate has expired or is not yet valid:
    [[email protected]]#dockerpullXXXcode-analysis:centos7.3-1.0Errorresponsefromdaemon:Get"XXXX":x509:certificatehasexpiredorisnotyetvalid:currenttime2023-07-11T14:27:37+08:00isafter2018-08-22T11:54:50Z x509:c......
  • sqlserver数据库清除备份集记录
    1、 通过维护计划清除备份集记录, SqlServer数据库备份到服务器,及删除           https://www.qyyshop.com/info/467759.html 通过维护计划删除没有的或者历史的记录.  ......