Ubuntu:在 Linux 上安装 SQL Server - SQL Server | Microsoft Learn
要在 Ubuntu 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包
1、导入公共存储库 GPG 密钥:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
2、注册 SQL Server Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
3、这里是mssql-server-2019版本的
运行以下命令以安装 SQL Server:
sudo apt-get update
sudo apt-get install -y mssql-server
4、包安装完成后,运行 mssql-conf setup
,按照提示设置 SA 密码并选择版本。 作为提醒,以下 SQL Server 版本是免费提供许可的:Evaluation、Developer(免费) 和 Express(免费) 版。
sudo /opt/mssql/bin/mssql-conf setup
选择版本和设置sa密码
5、完成配置后,验证服务是否正在运行:
systemctl status mssql-server --no-pager
6、如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
可根据需要使用以下命令停止、启动或重启 数据库引擎 服务:
sudo systemctl stop mssql-server
sudo systemctl start mssql-server
sudo systemctl restart mssql-server
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 以下步骤将安装 SQL Server 命令行工具:sqlcmd 和 bcp。
通过以下步骤在 Ubuntu 上安装 mssql-tools。 如果未安装 curl,可以运行以下代码
sudo apt-get update
sudo apt install curl
导入公共存储库 GPG 密钥。
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
注册 Ubuntu 存储库。
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
更新源列表,并使用 unixODBC
开发人员包运行安装命令。 有关详细信息,请参阅安装 Microsoft ODBC Driver for SQL Server (Linux)。
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev
可以通过运行以下命令将 mssql-tools 更新至最新版本:
sudo apt-get update
sudo apt-get install mssql-tools
为方便起见,将 /opt/mssql-tools/bin/
添加到 PATH
环境变量,以便可从 bash shell 访问 sqlcmd 或 bcp。
对于交互式会话,请使用以下命令在 ~/.bash_profile
文件中修改 PATH
环境变量:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
对于非交互式会话,请使用以下命令在 ~/.bashrc
文件中修改 PATH
环境变量:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
使用 SQL Server 名称 (-S
)、用户名 (-U
) 和密码 (-P
) 的相应参数运行 sqlcmd。 在本教程中,用户进行本地连接,因此服务器名称为 localhost
。 用户名为 sa
,密码是在安装过程中为 SA 帐户提供的密码。
sqlcmd -S localhost -U sa -P ''
可以在命令行上省略密码,以收到密码输入提示。
如果以后决定进行远程连接,请为 -S
参数指定计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开。
如果成功,应会显示 sqlcmd 命令提示符:1>
。
如果连接失败,先尝试诊断错误消息中所述的问题。
---------------------------------------------------------------------------------------------------------
如果数据库的Collocation是英文的,字段是varchar类型,向表中插入中文数据,会出现乱码。
CREATE DATABASE MyDBTest(库名) COLLATE Chinese_PRC_CI_AS_WS
参数解释如下:
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
_BIN 二进制排序
_CI(CS) 是否区分大小写,CI不区分,CS区分
_AI(AS) 是否区分重音,AI不区分,AS区分
_KI(KS) 是否区分假名类型,KI不区分,KS区分
_WI(WS) 是否区分宽度WI不区分,WS区分
区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让重音和非重音字母视为不等,请选择该选项。如果选择该选项,
比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项
在建表时,指定某个字段的语言,
方法 COLLATE Chinese_PRC_CS_AS_WS
create table test
(
a varchar(255) COLLATE Chinese_PRC_CS_AS_WS NULL,
b varchar(255) COLLATE sql_latin1_general_cp1_ci_as NULL
)
.NET6
Json序列化和反序列化中文乱码问题
JsonConvert.DeserializeObject(jsonDataString, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
JsonConvert.SerializeObject(jsonDataString, new JsonSerializerSettingsS { NullValueHandling = NullValueHandling.Ignore });
注意:只需要指定第二个参数即可
new JsonSerializerSettingsS { NullValueHandling = NullValueHandling.Ignore }