初探SQL Server 2017 on Docker@macOS
2017-10-08

      

       9月27日SQL Server 2017 正式发布,看点一堆,而这次发布不仅有传统的Windows版本,也有Linux和Docker的版本,这也意味着SQL Server完成了一次跨平台的飞跃。 不少人会质疑Linux/Docker上的SQL Server究竟有多大意义,这就等于有人问.NET Core在Linux上有多大意义一样。在云计算和容器微服务说事的今天,如果还拘泥于单一平台单一技术,那只会是一个失败者。先来一个回顾,2016年的3月微软宣布了SQL Server on Linux 的计划(https://blogs.microsoft.com/blog/2016/03/07/announcing-sql-server-on-linux/  ), 当时最兴奋的莫过于是Linux社区,但个人觉得更开心的是Azure团队。微软的转变,❤️Linux也好,❤️macOS也好,一切都是为了Azure. 经过一堆预览和测试后,国庆前终于RTM了。我趁着假期,也玩了一下。今天就从安装和配置说起,让大家有个整体认识。

       1. 环境,你需要先装好你的Docker,这里还得把Docker配置下,调整好容器的内存(这里我得说说微软真不能优化下内存占用吗?4G对于Docker有点大)。

           

       2. 安装 ,我喜爱Docker,因为它灵活,不需要考虑平台也不需要考虑技术,更适应这种变化快速的IT业界。像安装SQL Server你不再需要那个大得发紫的iso,只需要pull就万事大吉了。   

  1. docker pull microsoft/mssql-server-linux:2017-latest  

          当你pull完成功后就需要初始化你的SQL Server,包括了端口号,sa密码,版本等

  1. docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=你的sa密码' -e 'MSSQL_PID=Developer' -p 1401:1433 --name sql1 -d microsoft/mssql-server-linux:2017-latest  

          如果你希望有更多的配置建议参考这里

          
            通过docker ps -a 你可以查看SQL Server容器的状态

            

            如上图,SQL Server的容器是退出状态,你可以通过docker start 你的容器id启动

            

        3. 管理,在Windows上你有一个很好的SQL Server管理工具,在Linux/macOS上呢?其实都可以有,如商业化的RazorSQL就很不错了,我尝试连上去,还可以

       

       但个人建议用sqlcmd或者Visual Studio Code去链接更具操作性

       a.Visual Studio Code 如何操作SQL Server 可以参考我之前的文章(http://blog.csdn.net/kinfey/article/details/53246754)

       

      2.sqlcmd 估计这个会更拉风,话说一个极客基本上爱的是命令行了

         先安装sqlcmd

  1. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  

  2. brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release  

  3. brew update  

  4. brew install --no-sandbox mssql-tools  

         安装成功后,在终端输入sqlcmd -S localhost -U sa -P <your_password>就可以进行TSQL管理了

      

     

       到这里就把SQL Server on Docker的基本安装和管理环境说完了,但不少人会担心是否能投入到一些开发和生产力上,特别对现有的一些技术兼容性如何。我这里用Go做了一段简单的数据库连接,兼容性还是不错的。

       

       在终端运行

       

       跨平台的SQL Server不是一个玩具,也不是一个噱头,更多是满足了云为先的策略,让更多的技术融入进Azure是微软所看中的。总之我喜欢这次SQL Server的转变。

原文地址:http://blog.csdn.net/kinfey/article/details/78172889