Ubuntu上SQL Server网络配置指南
首先需完成SQL Server的基础安装,步骤如下:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.ascsudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)"sudo apt-get update && sudo ACCEPT_EULA=Y apt-get install -y mssql-serversudo /opt/mssql/bin/mssql-conf setup,按提示选择SQL Server版本(如Express、Standard)并设置SA账户密码。默认情况下,SQL Server仅允许本地连接(localhost),需通过以下步骤开启远程访问:
mssql-conf工具启用TCP/IP协议并设置端口(默认1433):sudo /opt/mssql/bin/mssql-conf set network.tcpip true # 启用TCP/IP
sudo /opt/mssql/bin/mssql-conf set network.tcpport 1433 # 设置端口(可选,若需修改)
sudo systemctl restart mssql-server # 重启服务使配置生效
/var/opt/mssql/mssql.conf文件,确认[network]部分包含tcpip = true和正确的tcpport值。若需为Ubuntu分配固定IP(避免动态IP变动导致连接失败),可通过netplan(Ubuntu 18.04及以上版本常用)配置:
/etc/netplan/00-installer-config.yaml或类似):network:
version: 2
ethernets:
eth0: # 网卡名称(通过`ip a`命令查看)
dhcp4: no
addresses: [192.168.1.100/24] # 静态IP及子网掩码
gateway4: 192.168.1.1 # 网关地址
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
sudo netplan apply,随后通过ip a命令验证IP是否生效。Ubuntu默认使用ufw(Uncomplicated Firewall)作为防火墙,需允许SQL Server端口(默认1433)通过:
sudo ufw allow 1433/tcp # 允许TCP 1433端口
sudo ufw reload # 重新加载防火墙规则
验证端口是否开放:sudo ufw status,应显示1433/tcp ALLOW。
sqlcmd -S localhost,1433 -U SA -P 'YourPassword',若能进入SQL命令行则说明本地连接正常。sqlcmd工具,输入服务器IP地址(如192.168.1.100)和端口(如1433),使用SA账户登录,若连接成功则说明远程配置生效。默认情况下,SQL Server仅支持Windows身份验证。若需允许SQL Server身份验证(便于远程连接),需创建SQL登录名并授权:
-- 使用SA账户登录后执行
CREATE LOGIN [RemoteUser] WITH PASSWORD = 'StrongPassword123!';
USE [master]; -- 或目标数据库
CREATE USER [RemoteUser] FOR LOGIN [RemoteUser];
EXEC sp_addrolemember 'db_datareader', 'RemoteUser'; -- 授予读权限
EXEC sp_addrolemember 'db_datawriter', 'RemoteUser'; -- 授予写权限
之后可使用RemoteUser账户从远程客户端连接。