温馨提示×

ubuntu sqlserver如何导入

小樊
40
2026-10-06 18:49:47
栏目: 云计算

在 Ubuntu 上导入 SQL Server 的数据,一般有两种常见场景:

  1. 在 Ubuntu 上安装并运行 SQL Server,然后导入数据库
  2. 把数据导入到 Ubuntu 中的 SQL Server(如 .bak / .sql / CSV)

下面按最常见用法一步步说明。


一、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 连接 SQL Server

sqlcmd -S localhost -U SA -P '你的密码'

三、导入方式(重点)

✅ 方式 1:导入 .sql 脚本

sqlcmd -S localhost -U SA -P '密码' -i /path/to/file.sql

或指定数据库:

sqlcmd -S localhost -U SA -P '密码' -d 数据库名 -i file.sql

✅ 方式 2:导入 .bak 备份文件(最常用)

1. 把 .bak 放到 SQL Server 可访问目录

sudo cp db.bak /var/opt/mssql/data/
sudo chown mssql:mssql /var/opt/mssql/data/db.bak

2. 还原数据库

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';

✅ 方式 3:导入 CSV(BCP)

导出结构:

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

五、你具体是哪种情况?

你可以告诉我:

  • 是 Windows → Ubuntu 迁移?
  • 导入的是 .bak / .sql / CSV?
  • 数据库版本(2019 / 2022)?

我可以直接给你精确命令。

0 踩