关于解决Mac使用docker安装SQL server for Linux 中文乱码问题

本文介绍在Mac上使用Docker安装SQL Server for Linux遇到的中文乱码问题及解决方案。通过设置数据库默认排序规则为Chinese_PRC_CI_AS,并在创建表时使用Unicode数据类型,成功解决乱码问题。

笔者是Mac的追随者,无奈本学期数据库课要求使用Microsoft的SQL server。但是Microsoft并没有发布SQL server for Mac ,笔者使用Google搜索后,发现可以Mac可以使用Docker安装SQL server for Linux 版。通过笔者的努力成功将SQL server 在Mac上运行。

  但是在安装后的8天。笔者发现Docker安装的SQL server 储存的中文是乱码的。所以笔者又通过Google搜索发现这可能是数据库创建时默认排序规则不是Chinese_PRC_CI_AS的。

  网上有两种解决方案,一种就是更改系统的默认排序规则,另一种就是在创建数据库时将默认排序规则改成Chinese_PRC_CI_AS的。第一种方案需要系统的root权限,也就是需要sudo。

  但是无奈Docker 模拟出的Linux 环境是没有sudo的。如下图:

那么就是第二种方案。那就在创建数据库更改默认排序规则为Chinese_PRC_CI_AS。SQL 语句为:

CREATE DATABASE Student
COLLATE Chinese_PRC_CI_AS; 

在创表时就需要将CHAR VARCHAR等在前面加N

它表示存储的是Unicode数据类型的字符。例如:
NCHAR NVARCHAR

最后问题就解决了 :

效果如图:

如果读者有什么问题或者有什么建议,欢迎在底下评论

本文博客园地址:https://www.cnblogs.com/misubishi/p/9858791.html

(本人博客园账号)

转载请说明出处

Mac系统上使用Docker安装SQL Server时,有以下注意事项: ### 系统兼容性 - **芯片架构**:如果是Mac M1芯片,要确保使用SQL Server Docker镜像支持ARM64架构,否则可能会出现兼容性问题,导致安装或运行失败。 - **Docker版本**:需保证安装Docker是最新版本,旧版本可能存在一些已知的兼容性问题,影响SQL Server的正常安装与运行。 ### 资源分配 - **内存**:SQL Server对内存要求较高,在Docker设置中,要合理分配足够的内存给容器。若内存不足,可能导致SQL Server运行缓慢甚至崩溃。 - **存储**:为SQL Server数据卷分配足够的磁盘空间,以满足数据存储和增长的需求。可通过类似如下命令为容器挂载数据卷: ```bash docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --name sql1 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest ``` 这里的`-v sqlvolume:/var/opt/mssql`将容器内的`/var/opt/mssql`目录挂载到名为`sqlvolume`的数据卷。 ### 安全设置 - **SA密码**:在安装过程中,要设置一个强SA密码。SA是SQL Server的系统管理员账户,弱密码会使数据库面临安全风险。密码需满足长度至少8个字符,包含大写字母、小写字母、数字和特殊字符。 - **端口映射**:注意端口映射的安全性,避免将SQL Server的默认端口(1433)直接暴露在公网。可通过防火墙等手段限制对该端口的访问,仅允许特定IP地址访问。 ### 镜像选择 - **版本选择**:根据实际需求选择合适的SQL Server Docker镜像版本。不同版本在功能和性能上可能存在差异,例如SQL Server 2019和2022在某些新特性上有所不同。 - **官方镜像**:建议使用微软官方提供的SQL Server Docker镜像,以保证镜像的安全性和稳定性。 ### 网络配置 - **网络模式**:了解并选择合适的Docker网络模式,如桥接模式或主机模式。桥接模式是默认模式,能为容器提供独立的IP地址,但可能存在网络隔离问题;主机模式则使容器与宿主机共享网络栈,可简化网络配置,但会增加安全风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值