在 Ubuntu 上导入 SQL Server 的数据,一般有两种常见场景:
下面按最常见用法一步步说明。
# 1. 导入微软密钥
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
# 2. 添加仓库
curl https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server.list
# 3. 安装
sudo apt update
sudo apt install -y mssql-server
# 4. 初始化
sudo /opt/mssql/bin/mssql-conf setup
安装 SQL 工具:
sudo apt install -y mssql-tools unixodbc-dev
加入环境变量:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
sqlcmd -S localhost -U SA -P '你的密码'
.sql 脚本sqlcmd -S localhost -U SA -P '密码' -i /path/to/file.sql
或指定数据库:
sqlcmd -S localhost -U SA -P '密码' -d 数据库名 -i file.sql
.bak 备份文件(最常用)sudo cp db.bak /var/opt/mssql/data/
sudo chown mssql:mssql /var/opt/mssql/data/db.bak
RESTORE DATABASE 数据库名
FROM DISK = '/var/opt/mssql/data/db.bak'
WITH MOVE '逻辑名' TO '/var/opt/mssql/data/数据库名.mdf',
MOVE '逻辑名_log' TO '/var/opt/mssql/data/数据库名.ldf';
查看逻辑名:
RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/data/db.bak';
导出结构:
bcp 数据库名.dbo.表名 out data.csv -c -t, -S localhost -U SA -P 密码
导入:
bcp 数据库名.dbo.表名 in data.csv -c -t, -S localhost -U SA -P 密码
sudo chown mssql:mssql 文件
sudo systemctl status mssql-server
你可以告诉我:
我可以直接给你精确命令。