安装
先决条件:
至少需要 2GB 内存才能运行 Linux 上的 SQL Server。
文件系统必须是 XFS 或 EXT4 。 其他文件系统(如 BTRFS)均不受支持 。
修改主机名
hostnamectl set-hostname test1
重启后生效
要在 Ubuntu 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包 。
导入公共存储库 GPG 密钥:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
注册 SQL Server Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
运行以下命令以安装 SQL Server:
sudo apt-get update
sudo apt-get install -y mssql-server
包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本。
sudo /opt/mssql/bin/mssql-conf setup
请记住为 SA 帐户指定强密码。 需要最小长度为 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号。
完成配置后,验证服务是否正在运行:
systemctl status mssql-server --no-pager
如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
若要创建数据库,则需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 按照以下步骤安装 SQL Server 命令行工具:sqlcmd 实用工具 和 bcp 实用工具。
参考:
https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15&tabs=ubuntu2004
自动安装脚本
此示例 bash 脚本可在 Ubuntu 上安装 SQL Server,且无需交互式输入。 它提供数据库引擎、SQL Server 命令行工具和 SQL Server 代理的安装示例,并执行安装后步骤。 可以选择安装全文搜索并创建管理用户。
此示例在 Ubuntu Server 20.04 上安装 SQL Server 2019 (15.x)。 如果要安装不同版本的 SQL Server 或 Ubuntu Server,请相应地更改 Microsoft 存储库路径。
将示例脚本保存到文件,然后对其进行自定义。 需要替换脚本中的变量值。 还可以将任何脚本变量设置为环境变量,前提是从脚本文件中删除它们。
如果 SQL Server 启动缓慢,则脚本可能会失败。 这是因为脚本将以非零状态退出。 删除第一行上的 -e 开关可以解决此问题。
注:SA_PASSWORD 环境变量已弃用。 请改用 MSSQL_SA_PASSWORD。
#!/bin/bash -e
# Use the following variables to control your install:
# Password for the SA user (required)
MSSQL_SA_PASSWORD='<YourStrong!Passw0rd>'
# Product ID of the version of SQL Server you're installing
# Must be evaluation, developer, express, web, standard, enterprise, or your 25 digit product key
# Defaults to developer
MSSQL_PID='evaluation'
# Enable SQL Server Agent (recommended)
SQL_ENABLE_AGENT='y'
# Install SQL Server Full Text Search (optional)
# SQL_INSTALL_FULLTEXT='y'
# Create an additional user with sysadmin privileges (optional)
# SQL_INSTALL_USER='<Username>'
# SQL_INSTALL_USER_PASSWORD='<YourStrong!Passw0rd>'
if [ -z $MSSQL_SA_PASSWORD ]
then
echo Environment variable MSSQL_SA_PASSWORD must be set for unattended install
exit 1
fi
echo Adding Microsoft repositories...
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
repoargs="$(curl https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
sudo add-apt-repository "${repoargs}"
repoargs="$(curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list)"
sudo add-apt-repository "${repoargs}"
echo Running apt-get update -y...
sudo apt-get update -y
echo Installing SQL Server...
sudo apt-get install -y mssql-server
echo Running mssql-conf setup...
sudo MSSQL_SA_PASSWORD=$MSSQL_SA_PASSWORD \
MSSQL_PID=$MSSQL_PID \
/opt/mssql/bin/mssql-conf -n setup accept-eula
echo Installing mssql-tools and unixODBC developer...
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools unixodbc-dev
# Add SQL Server tools to the path by default:
echo Adding SQL Server tools to your path...
echo PATH="$PATH:/opt/mssql-tools/bin" >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# Optional Enable SQL Server Agent:
if [ ! -z $SQL_ENABLE_AGENT ]
then
echo Enabling SQL Server Agent...
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
fi
# Optional SQL Server Full Text Search installation:
if [ ! -z $SQL_INSTALL_FULLTEXT ]
then
echo Installing SQL Server Full-Text Search...
sudo apt-get install -y mssql-server-fts
fi
# Configure firewall to allow TCP port 1433:
echo Configuring UFW to allow traffic on port 1433...
sudo ufw allow 1433/tcp
sudo ufw reload
# Optional example of post-installation configuration.
# Trace flags 1204 and 1222 are for deadlock tracing.
# echo Setting trace flags...
# sudo /opt/mssql/bin/mssql-conf traceflag 1204 1222 on
# Restart SQL Server after installing:
echo Restarting SQL Server...
sudo systemctl restart mssql-server
# Connect to server and get the version:
counter=1
errstatus=1
while [ $counter -le 5 ] && [ $errstatus = 1 ]
do
echo Waiting for SQL Server to start...
sleep 3s
/opt/mssql-tools/bin/sqlcmd \
-S localhost \
-U SA \
-P $MSSQL_SA_PASSWORD \
-Q "SELECT @@VERSION" 2>/dev/null
errstatus=$?
((counter++))
done
# Display error if connection failed:
if [ $errstatus = 1 ]
then
echo Cannot connect to SQL Server, installation aborted
exit $errstatus
fi
# Optional new user creation:
if [ ! -z $SQL_INSTALL_USER ] && [ ! -z $SQL_INSTALL_USER_PASSWORD ]
then
echo Creating user $SQL_INSTALL_USER
/opt/mssql-tools/bin/sqlcmd \
-S localhost \
-U SA \
-P $MSSQL_SA_PASSWORD \
-Q "CREATE LOGIN [$SQL_INSTALL_USER] WITH PASSWORD=N'$SQL_INSTALL_USER_PASSWORD', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON; ALTER SERVER ROLE [sysadmin] ADD MEMBER [$SQL_INSTALL_USER]"
fi
echo Done!
若要运行该脚本,请执行以下操作:
1.将示例粘贴到你最喜欢的文本编辑器中,并使用便于记忆的名称保存它,例如 install_sql.sh。
2.自定义 MSSQL_SA_PASSWORD、MSSQL_PID 和要更改的任何其他变量。
3.将脚本标记为可执行文件
chmod +x install_sql.sh
4.运行脚本
./install_sql.sh
参考:
https://learn.microsoft.com/zh-cn/sql/linux/sample-unattended-install-ubuntu?view=sql-server-ver15
脱机安装
如果 Linux 计算机无法访问快速入门中使用的联机存储库,则可以直接下载包文件。 这些包位于 Microsoft 存储库中,网址:
https://packages.microsoft.com
- 下载适用于平台的数据库引擎包。 在发行说明的包详细信息部分找到包下载链接。
- 将下载的包移动到 Linux 计算机。 如果使用了不同的计算机下载包,则可以通过“scp”命令将包移至你的 Linux 计算机。
-安装数据库引擎包。 根据你的平台使用以下命令之一。 将此示例中的包文件名替换为下载的确切名称。
sudo dpkg -i mssql-server_versionnumber_amd64.deb
- 解决缺少依赖项的问题:此时可能会出现缺少依赖项的情况。 如果没有,可以跳过此步骤。 在 Ubuntu 上,如果能够访问包含这些依赖项的已批准的存储库,最简单的解决办法是使用 apt-get -f install 命令。 此命令还会完成 SQL Server 的安装。 若要手动检查依赖项,请使用以下命令:
dpkg -I mssql-server_versionnumber_amd64.deb
解决缺少的依赖项后,可以尝试再次安装 mssql-server 包。
我这里安装的是2019,依赖如下:
libatomic1, libunwind8, libnuma1, libc6, adduser, libc++1, gdb, debconf, hostname, openssl (>= 1.0.1g), python3, libgssapi-krb5-2, libsss-nss-idmap0, gawk, sed, libpam0g, libldap-2.4-2, libsasl2-2, libsasl2-modules-gssapi-mit, tzdata, lsof, procps
使用apt-get install安装:
sudo apt-get install libatomic1 libunwind8 libnuma1 libc6 adduser libc++1 gdb debconf hostname openssl python3 libgssapi-krb5-2 libsss-nss-idmap0 gawk sed libpam0g libldap-2.4-2 libsasl2-2 libsasl2-modules-gssapi-mit tzdata lsof procps
安装完依赖后,再执行安装,提示如下:
root@admin123:/app/database# sudo dpkg -i mssql-server_15.0.4345.5-2_amd64.deb
Selecting previously unselected package mssql-server.
(Reading database ... 113557 files and directories currently installed.)
Preparing to unpack mssql-server_15.0.4345.5-2_amd64.deb ...
Unpacking mssql-server (15.0.4345.5-2) ...
Setting up mssql-server (15.0.4345.5-2) ...
+--------------------------------------------------------------+
Please run 'sudo /opt/mssql/bin/mssql-conf setup'
to complete the setup of Microsoft SQL Server
+--------------------------------------------------------------+
Processing triggers for libc-bin (2.31-0ubuntu9.14) ...
Processing triggers for man-db (2.9.1-1) ...
- 完成 SQL Server 安装。 使用“mssql-conf”完成 SQL Server 安装:
sudo /opt/mssql/bin/mssql-conf setup
步骤如下:
root@admin123:/app/database# sudo /opt/mssql/bin/mssql-conf setup
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8): 6
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:Yes
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
The licensing PID was successfully processed. The new edition is [Enterprise Edition].
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
查看运行状态:
systemctl status mssql-server.service
参考:
https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup?view=sql-server-ver15#offline
下载地址:
https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-release-notes-2019?view=sql-server-ver15
SQLServer on Linux
参考:
https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-overview?view=sql-server-ver15
网友评论