Ubuntu16.04安装配置SQL Server数据库

1、安装SQL Server

要在 Ubuntu 上配置 SQL Server,请在终端中运行以下命令以安装 mssql-server 包 。

  1. 导入公共存储库 GPG 密钥:
    wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  2. 注册 Microsoft SQL Server Ubuntu 存储库:
    sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)”
  3. 运行以下命令,安装 SQL Server:
    sudo apt-get update
    sudo apt-get install -y mssql-server
  4. 包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本 。
    sudo /opt/mssql/bin/mssql-conf setup
  5. 完成配置后,验证服务是否正在运行:
    systemctl status mssql-server --no-pager
  6. 如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)。
    此时,SQL Server 已在 Ubuntu 计算机上运行,随时可以使用!

2、安装 SQL Server 命令行工具

要创建数据库,需要使用可在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。 以下步骤安装 SQL Server 命令行工具:sqlcmd和 bcp。
通过下列步骤在 Ubuntu 上安装 mssql-tools 。

  1. 导入公共存储库 GPG 密钥。
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  2. 注册 Microsoft Ubuntu 存储库。
    curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
  3. 更新源列表,并使用 unixODBC 开发人员包运行安装命令。
    sudo apt-get update
    sudo apt-get install mssql-tools unixodbc-dev
  4. 可选:向 bash shell 中的 PATH 环境变量添加 /opt/mssql-tools/bin/ 。
    要使 sqlcmd/bcp 能从登陆会话的 bash shell 进行访问,请使用下列命令修改 ~/.bash_profile 文件中的 PATH :
    echo ‘export PATH=“ P A T H : / o p t / m s s q l − t o o l s / b i n " ′ > >   / . b a s h p r o f i l e 要使 s q l c m d / b c p 能从交互式 / 非登录会话的 b a s h s h e l l 进行访问,请使用下列命令修改  / . b a s h r c 文件中的 P A T H : e c h o ′ e x p o r t P A T H = " PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile 要使 sqlcmd/bcp 能从交互式/非登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bashrc 文件中的 PATH : echo 'export PATH=" PATH:/opt/mssqltools/bin">> /.bashprofile要使sqlcmd/bcp能从交互式/非登录会话的bashshell进行访问,请使用下列命令修改 /.bashrc文件中的PATHechoexportPATH="PATH:/opt/mssql-tools/bin”’ >> ~/.bashrc
    source ~/.bashrc

3、SQL Server工具连接到Linux上的SQL实例

可以使用windows上的SQL Server工具连接到Linux上的SQL实例,操作方式与连接到任何远程SQL Server实例一样。

4、 在windows机器上为linux服务器还原数据库

默认的mssql数据库放置路径为:/var/opt/mssql/data下,我们使用windows上的SQLServer工具来还原数据库到linux服务器上,需要先将bak文件放置到/var/opt/mssql/data目录下,然后正常进行还原就可以了。

在这里插入图片描述

5、 在 Linux 上还原数据库

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-2017
要还原数据库备份,可以使用 RESTORE DATABASE Transact-SQL (TQL) 命令。

备注:需要先将bak文件放置到/var/opt/mssql目录下

下列步骤使用 sqlcmd 工具。 如果尚未安装 SQL Server 工具,请参阅在 Linux 上安装 SQL Server 命令行工具。

  1. 在同一终端中,启动 sqlcmd 。 下面的示例以 SA 用户身份连接到本地 SQL Server 。 出现提示时输入密码,或使用 -P 参数指定密码 。
    sqlcmd -S localhost -U SA

  2. 在 >1 提示符下,输入以下 RESTORE DATABASE 命令,并在每行后按 Enter(无法同时复制和粘贴整个多行命令)。 将出现的所有 YourDB 替换为数据库的名称。

1> RESTORE DATABASE idr_rdb
2> FROM DISK='/var/opt/mssql/backup/idr_rdb_Full_20190819.bak'
3> WITH MOVE 'idr_rdb_Data' TO '/var/opt/mssql/data/idr_rdb_Data.mdf',
4> MOVE 'idr_rdb_Log' TO '/var/opt/mssql/data/idr_rdb_Log.ldf'
5> GO

Processed 656 pages for database ‘idr_rdb’, file ‘idr_rdb_Data’ on file 1.
Processed 6 pages for database ‘idr_rdb’, file ‘idr_rdb_Log’ on file 1.
Converting database ‘idr_rdb’ from version 782 to the current version 869.
Database ‘idr_rdb’ running the upgrade step from version
如果还原失败,可以先list一下bak文件中包含的文件,并修改对应的文件后再尝试还原。
可以列出备份中包含的所有文件:
1> RESTORE FILEISONLY FROM DISK=‘/var/opt/mssql/backup/idr_rdb_Full_20190819.bak’
2> GO
应会看到如下所示的列表(仅列出前两列):

LogicalName         PhysicalName                                                                

idr_rdb_Data                                                                                                                     E:\Program Files\Microsoft SQL 
Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\idr_rdb_Data.MDF                                                                                                                                                                                D    PRIMARY                                      
                                                                                                 5832704       35184372080640                    1                           0                           0 0B6B3E68-C573-44DD-BB8B-6195C9ACDAC6                           0                           0              5373952             512           1 NULL                                           48000000102000189 9BC28EB6-EE18-4EB0-ABBB-9247F3F239E1          0         1 NULL                                       NULL                                                                                                                                                                                                                                                                                                                                            
idr_rdb_Log                                                                                                                      E:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\idr_rdb_Log.LDF                                                                                                                                                                                 L    NULL                                                                                                                                          9437184        2199023255552                    2                           0                           0 68CAB742-B79B-44C2-AE83-7A867437FA0D                           0                           0                    0             512           0 NULL                                                           0 00000000-0000-0000-0000-000000000000          0         1 NULL                                       NULL                  

通过列出服务器上的所有数据库来验证还原。 应该会列出已还原的数据库。

select name from sysdatabases where dbid>4 //(过滤系统表)
go
  1. 在已迁移的数据库上运行其他查询。 以下命令将上下文切换到 YourDB 数据库,并从其一个表中选择行。
USE YourDB
SELECT * FROM YourTable
GO
  1. 使用 sqlcmd 完成后,键入 exit。
  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值