环境:Ubuntu 18.04; 需要连接互联网
Ubutun 20.04, 16.04 可将路径中的18.04分别替换为 20.04, 16.04
Ubuntu:在 Linux 上安装 SQL Server - SQL Server | Microsoft Docs: https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15
安装Sql Server
apt update
apt upgrade
1. 导入公共存储库 GPG 密钥
# 可能会导入失败,需根据提示安装缺失的组件
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
2. 注册 Microsoft SQL Server Ubuntu 存储库 (SQL Server 2019)
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"
3. 安装 Sql Server
sudo apt-get update
sudo apt-get install -y mssql-server
4. 运行 mssql-conf setup
# 根据提示选择版本,并设置SA密码
# SA 帐户密码要求(最少 8 个字符,包括大写和小写字母、十进制数字或非字母数字符号)。
sudo /opt/mssql/bin/mssql-conf setup
5. 查看服务运行状态
systemctl status mssql-server --no-pager
安装Sql Server 命令行工具 (sqlcmd, bcp)
1. 导入公共存储库 GPG 密钥
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
2. 注册 Microsoft Ubuntu 存储库
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
3. 更新源列表,并使用 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
【可选】向 bash shell 中的 PATH 环境变量添加 /opt/mssql-tools/bin/
- 使 sqlcmd/bcp 能从登陆会话的 bash shell 进行访问
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
- 使 sqlcmd/bcp 能从交互式/非登录会话的 bash shell 进行访问
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc
Sql Server 本地连接
# -S Sql Server 名称, -U 用户名, -P 密码
# 若省略密码,会收到密码输入提示
sqlcmd -S localhost -U SA -P '<YourPassword>'
- 登录成功,会显示 sqlcmd 命令提示符:
1>
Sql Server 远程连接 (PowerShell)
- 远程连接,需要打开Sql Server TCP端口(默认值 1433)
使用 PowerShell 管理 Linux 上的 SQL Server - SQL Server | Microsoft Docs: https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-manage-powershell?view=sql-server-ver15
1. 【需管理员权限】安装 SqlServer 模块
# 可能会有提示,需根据提示进行选择
Install-Module -Name SqlServer
about_Execution_Policies - PowerShell | Microsoft Docs: https://docs.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1
(我查阅的时候,还是机翻,效果不太好,可以和英文版结合看)
2. 修改 PowerShell 可执行策略
- 获取影响当前会话的所有执行策略,并按优先顺序显示它们
Get-ExecutionPolicy -List
- 设置特定范围中的执行策略
范例Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
-
PolicyName(执行策略):
AllSigned
,Bypass
,Default
,RemoteSigned
,Restricted
,Undefined
,Unrestricted
-
scope(作用域):
MachinePolicy
,UserPolicy
,Process
(仅当前会话),CurrentUser
(当前用户),LocalMachine
-
PolicyName(执行策略):
下载 SQL Server PowerShell 模块 - SQL Server | Microsoft Docs: https://docs.microsoft.com/zh-cn/sql/powershell/download-sql-server-ps-module?view=sql-server-ver15
3. 导入 SqlServer模块
Import-Module SqlServer
4. 验证是否已正确导入 SqlServer 模块
Get-Module -Name SqlServer
PowerShell 应显示类似以下输出
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 21.1.18245 SqlServer {Add-RoleMember, Add-SqlAvailabilityDatabase, Add-SqlAvail...
5. 连接到 Sql Server 并获取服务器信息
# 会提示输入实例的主机名/IP地址
$serverInstance = Read-Host "输入实例名称"
# 会弹出输入凭据的对话框,为用于连接 Sql 的用户名和密码
$credential = Get-Credential
# 连接到服务器并获取配置
Get-SqlInstance -ServerInstance $serverInstance -Credential $credential
PowerShell 应显示类似以下输出
Instance Name Version ProductLevel UpdateLevel HostPlatform HostDistribution
------------- ------- ------------ ----------- ------------ ----------------
47.106.238.147 15.0.4123 RTM CU10 Linux Ubuntu