• Linux下SQL Server安装及数据库迁移


    有客户使用Linux服务器,SQL Server从2017开始已支持Linux,从未用过,今天测试了一下,比较简单,记录一下。

    Linux:CentOS 7.0

    首先更新源:

    curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

    然后安装:

    yum install -y mssql-server

    安装完后配置:

    /opt/mssql/bin/mssql-conf setup

    好了,就这么简单!

    然后测试从windows sql server 2008 R2迁移至Linux SQL Server 2017下。

    首先在windows下备份数据库,比如是a.bak,将备份文件上传至Linux。Linux默认数据路径是/var/opt/mssql/data。然后在Linux下运行命令:

    RESTORE DATABASE newdbname FROM DISK = '/var/opt/mssql/data/a.bak'
    WITH
    MOVE 'db1' TO '/var/opt/mssql/data/newdb.mdf',
    MOVE 'db1_log' TO '/var/opt/mssql/data/newdb_log.ldf', STATS = 1, REPLACE, RECOVERY

    此处注意,newdbname为新创建的数据库名字,而db1和db2_log为原数据库中的逻辑数据文件的名字。

    设置防火墙:

    sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
    sudo firewall-cmd --reload 


    CentOS7防火墙相关命令:

    //临时关闭
    systemctl stop firewalld
    //禁止开机启动
    systemctl disable firewalld
    Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

    恢复成功,然后可以用SSMS或navicat或Azure Data Studio等工具正常连接数据库使用了。

    安装mssql-tools:

    添加源:

    curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo

    安装:

    yum install mssql-tools unixODBC-devel

     添加登录会话访问路径:

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

    source ~/.bash_profile

    交互式/非登录会话:

    echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

    source ~/.bashrc

    总体很简单,很Microsoft !  :-)

  • 相关阅读:
    Laravel按指定字段值排序(orderByRaw)
    MYSQL删除索引,然后创建普通索引
    解决AttributeError: module ‘pymysql’ has no attribute ‘escape_string’
    Linux服务器命令
    python当前模块调用父级模块
    Linux读取文件最后几行内容
    MYSQL多个字段IN查询
    Laravel 查询数据时判断查询结果是否为空
    Linux服务器下php网站解决故障常用方法
    Laravel新增路由文件配置
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/11431746.html
Copyright © 2020-2023  润新知