之前都是使用 SSMS 来操作数据库,还原数据库以及附加数据库,只需要认识字知道点鼠标左键就可以完成任务,十分方便快捷。久而久之就成了微软惯坏的孩子,去操作奔跑在Linux上的Sql Server 时候有些为难,我手上只有*.mdf的文件,该如何如还原数据库呢?在 Linux 上没有SSMS这样强大的队友,但是还是可以通过 sqlcmd 去解决得。下面就是简单的记录下操作步骤。

  • *.bak 还原数据库的话,参考文档:地址

*.mdf 还原数据库

  1. 拷贝 *.mdf 以及 *_log.ldf 文件到 /var/opt/mssql/data目录下,不移动到该目录一下,执行后面脚本会报 The system cannot find the file specified. 的错误。

  2. 给刚移动的文件分配权限,不分配权限会出现 Access is denied.

sudo chmod 777 *.mdf
sudo chmod 777 *_log.ldf
  1. sqlcmd -S localhost -U sa 连接数据库
  2. 执行下面的命令开始附加数据库,将里面的 table_name , your_data.mdf, your_data_log.ldf 替换你自己的即可。
CREATE DATABASE table_name ON PRIMARY
(FILENAME = '/var/opt/mssql/data/your_data.mdf') LOG ON
(FILENAME ='/var/opt/mssql/data/your_data_log.ldf') FOR ATTACH;

GO

好了,到这里就完成了。