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

时间:2024-10-05 07:04:26

1、安装SQL Server

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

  1. 导入公共存储库 GPG 密钥:
    wget -qO- /keys/ | sudo apt-key add -

  2. 注册 Microsoft SQL Server Ubuntu 存储库:
    sudo add-apt-repository "$(wget -qO- /config/ubuntu/16.04/)"

  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 命令行工具:sqlcmdbcp

通过下列步骤在 Ubuntu 上安装 mssql-tools 。

  1. 导入公共存储库 GPG 密钥。
    curl /keys/ | sudo apt-key add -

  2. 注册 Microsoft Ubuntu 存储库。
    curl /config/ubuntu/16.04/ | sudo tee /etc/apt//

  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="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
    要使 sqlcmd/bcp 能从交互式/非登录会话的 bash shell 进行访问,请使用下列命令修改 ~/.bashrc 文件中的 PATH :
    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc

3、可以使用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 上还原数据库

/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 命令行工具。

5.1

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

5.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
  • 1
  • 2
  • 3
  • 4
  • 5

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
  • 1
  • 2

应会看到如下所示的列表(仅列出前两列):
LogicalName
PhysicalName
+++++++++++++++++++++++++++++++++++++++
idr_rdb_Data E:\Program Files\Microsoft SQL Server\\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\\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
+++++++++++++++++++++++++++++++++++++++

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

1> select name from sysdatabases where dbid>4 //(过滤系统表)
2> go
  • 1
  • 2

name
+++++++++++++++++++++++++++++++++++++++
Maintenance_rdb
idr_history_rdb
idr_rdb
+++++++++++++++++++++++++++++++++++++++

5.3

在已迁移的数据库上运行其他查询。 以下命令将上下文切换到 YourDB 数据库,并从其一个表中选择行。

USE YourDB
SELECT * FROM YourTable
GO
  • 1
  • 2
  • 3

5.4

使用 sqlcmd 完成后,键入 exit。