如何在Ubuntu 16.04上安装Adventure Works示例数据库?
当然没问题!你完全可以在Ubuntu 16.04 LTS上的SQL Server 2017 Express里部署AdventureWorks或者WideWorldImporters示例库,用来练习SQL查询。下面我给你一步步拆解具体操作:
准备工作
首先确保你的SQL Server服务处于运行状态:
- 检查服务状态:
sudo systemctl status mssql-server - 如果服务未启动,执行启动命令:
sudo systemctl start mssql-server
推荐安装:WideWorldImporters(新版示例库)
这是微软推出的新一代示例库,包含更丰富的业务场景数据,更适合练习复杂查询:
- 获取备份文件:你可以从微软官方的SQL Server示例资源渠道获取
WideWorldImporters-Full.bak备份包,在终端里用wget命令就能直接下载。 - 复制到SQL Server备份目录:SQL Server在Linux上的默认备份目录是
/var/opt/mssql/data/,执行命令把备份文件移过去:sudo cp WideWorldImporters-Full.bak /var/opt/mssql/data/ - 修改文件权限:让SQL Server系统用户能访问这个备份文件:
sudo chown mssql:mssql /var/opt/mssql/data/WideWorldImporters-Full.bak - 恢复数据库:
- 用
sqlcmd连接到SQL Server:sqlcmd -S localhost -U SA -P 你的SA登录密码 - 执行恢复SQL语句(复制粘贴到命令行即可):
RESTORE DATABASE WideWorldImporters FROM DISK = '/var/opt/mssql/data/WideWorldImporters-Full.bak' WITH MOVE 'WWI_Primary' TO '/var/opt/mssql/data/WideWorldImporters.mdf', MOVE 'WWI_UserData' TO '/var/opt/mssql/data/WideWorldImporters_UserData.ndf', MOVE 'WWI_Log' TO '/var/opt/mssql/data/WideWorldImporters.ldf', MOVE 'WWI_InMemory_Data_1' TO '/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1'; GO - 验证恢复结果:执行
SELECT name FROM sys.databases WHERE name = 'WideWorldImporters'; GO,如果返回库名就说明成功了。
- 用
可选安装:AdventureWorks(经典示例库)
如果你更习惯经典的AdventureWorks场景,也可以按照以下步骤安装:
- 获取备份文件:获取对应版本的备份包(比如
AdventureWorks2017.bak),同样用wget下载到本地。 - 复制并修改权限:
sudo cp AdventureWorks2017.bak /var/opt/mssql/data/sudo chown mssql:mssql /var/opt/mssql/data/AdventureWorks2017.bak - 恢复数据库:
- 连接SQL Server后,执行恢复语句:
RESTORE DATABASE AdventureWorks2017 FROM DISK = '/var/opt/mssql/data/AdventureWorks2017.bak' WITH MOVE 'AdventureWorks2017' TO '/var/opt/mssql/data/AdventureWorks2017.mdf', MOVE 'AdventureWorks2017_log' TO '/var/opt/mssql/data/AdventureWorks2017_log.ldf'; GO - 同样用
SELECT name FROM sys.databases WHERE name = 'AdventureWorks2017'; GO验证是否成功。
- 连接SQL Server后,执行恢复语句:
一些注意事项
- 确保你的SA密码符合SQL Server的复杂度要求(比如包含大小写字母、数字和特殊字符),不然会连接失败。
- 如果下载备份文件速度慢,也可以在浏览器里下载后通过SFTP等工具传到Ubuntu机器上。
- 恢复时如果提示文件路径冲突,检查
/var/opt/mssql/data/目录里是否有同名的.mdf或.ldf文件,先删除或者修改恢复语句里的目标文件名即可。
内容的提问来源于stack exchange,提问作者viskop-kapenaar
相关产品推荐
相关产品推荐

