• 老司机带你开飞机 一: mssql on linux 安装指导


    通常在本机开发环境中需要搭建所有的服务,还要修改本地的hosts,实在是不胜其烦。如今有了docker,完全不用污染本地环境,且看老司机带你搭建一个asp.net core的开发环境集群。愿你走出虚拟机,归来仍是干净的开发机。

    教程比较长,所以分成多篇连载。

    First things first:需要安装一个数据库,如今有了mssql on linux,真是太棒了,原来mssqlserver中的测试数据都可以无缝迁移过来。

    docker的安装细节大家自己找找看

    1. 进入bash,执行以下命令
    cd ~
    mkdir mssql
    cd mssql
    vim Dockerfile
    
    1. 输入以下Dockerfile脚本
    # mssql-server-linux
    # Maintainers: Microsoft Corporation (LuisBosquez and twright-msft on GitHub)
    # GitRepo: https://github.com/Microsoft/mssql-docker
    
    # Base OS layer: Latest Ubuntu LTS.
    FROM microsoft/mssql-server-linux
    
    # 设置证书
    ENV ACCEPT_EULA Y
    
    # 设置sa帐户的密码
    ENV SA_PASSWORD Sql123123.
    
    # Default SQL Server TCP/Port.
    EXPOSE 1433
    
    # Copy all SQL Server runtime files from build drop into image.
    #COPY ./data /data
    
    # 挂载一个数据卷,用于放置脚本和备份数据
    VOLUME /data
    
    # Run SQL Server process.
    CMD /opt/mssql/bin/sqlservr.sh
    

    保存并退出:wq

    1. 生成镜像docker build -t mssql .,最后一个点别忘了。

    2. 创建一个目录以供mssql挂载: mkdir mssqldata

    3. 启动容器docker run -d -v /(!绝对路径!)/mssqldata:/data mssql,以后就使用该容器提供的数据库服务,不要轻易删除,可以stop/restart。

    4. 容器正常运行以后,可以直接进入SqlCmd操作数据库:docker exec -it <container_id|container_name> /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <your_password> (ps:SqlCmd是一种命令行管理工具,还可以通过VS Code使用图形化管理)

    很多情况下,要通过Sql脚本恢复数据库,这时候就不能直接进入SqlCmd了。

    我们先把sql脚本复制数据卷对应的本机目录下,我上面指定的是/(!绝对路径!)/mssqldata

    首先,复制一个sql脚本到数据卷中/(!绝对路径!)/mssqldata/testdb.sql,我的testdbd.sql中包含了data & scheme。(mssqlserver生成sql脚本的过程大家应该是知道的。)

    注意!
    如果脚本中有创建mdf文件的语句:

     CONTAINMENT = NONE
     ON  PRIMARY 
    ( NAME = N'TestDb', FILENAME = N'C:xxxTestDb.mdf' , SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
     LOG ON 
    ( NAME = N'TestDb_log', FILENAME = N'C:xxxTestDb_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
    GO
    

    那么应该把地址改成数据卷的地址,本例中改为FILENAME = N'/data/TestDb.mdf‘,还有一个ldf文件可别忘了。

    这样做是为了保证镜像干净。

    1. 进入数据库容器:docker exec -it <container_id|container_name> /bin/bash (PS:命令docker ps -a可以查看到该容器的id和name,或者在启动容器的时候指定name)

    2. /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <your_password> -i /data/testdb.sql,此处的-i参数就表示执行后面的sql脚本。前面已经把sql脚本放在了数据卷中,所以在容器的/data中就能拿到了。

    完成了mssql on linux的安装和数据恢复,后面就要使用此docker容器作为数据库服务了。如果你对docker的基本命令还不熟悉的话,建议去官网看看文档,多练几遍就可以了,没什么难度。

    感慨一句,mssql on linux的docker镜像文档里明确指出里需要至少3.25GB的内存,但是实际上没那么夸张,跑了一个数据库实例也才使用600MB,相对于mssqlserver已经好太多了。

    接下来,会讲解如何使用docker-compose搭建集群。

  • 相关阅读:
    Scala中有关时间的转换操作
    Scala基础
    IDEA 从github拉取代码与推送代码
    IDEA把项目推送到github
    Flink on yarn-session启动出错 Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.yarn.exceptions.YarnException org.apache.hadoop.conf.Configuration
    spark sql导出数据到mysql 出现BLOB类型
    编译Kafka0.11版本遇到的坑!!! 日志无法打印og4j:WARN No appenders could be found for logger(kafka.$Kafka.)
    C#
    js得到分页栏
    js获取浏览器地址栏传递的参数
  • 原文地址:https://www.cnblogs.com/kexxxfeng/p/6783534.html
Copyright © 2020-2023  润新知