mssql on linux 安装指导
通常在本機開發環境中需要搭建所有的服務,還要修改本地的hosts,實在是不勝其煩。如今有了docker,完全不用污染本地環境,且看老司機帶你搭建一個asp.net core的開發環境集群。愿你走出虛擬機,歸來仍是干凈的開發機。
教程比較長,所以分成多篇連載。
First things first:需要安裝一個數據庫,如今有了mssql on linux,真是太棒了,原來mssqlserver中的測試數據都可以無縫遷移過來。
docker的安裝細節大家自己找找看。
進入bash,執行以下命令
輸入以下Dockerfile腳本
保存并退出:wq
生成鏡像docker build -t mssql .,最后一個點別忘了。
創建一個目錄以供mssql掛載:?mkdir mssqldata
啟動容器docker run -d -v /(!絕對路徑!)/mssqldata:/data mssql,以后就使用該容器提供的數據庫服務,不要輕易刪除,可以stop/restart。
容器正常運行以后,可以直接進入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文件的語句:
CREATE DATABASE [TestDb] CONTAINMENT = NONE ON PRIMARY ( NAME = N'TestDb', FILENAME = N'C:\xxx\TestDb.mdf' , SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'TestDb_log', FILENAME = N'C:\xxx\TestDb_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO
那么應該把地址改成數據卷的地址,本例中改為FILENAME = N'/data/TestDb.mdf‘,還有一個ldf文件可別忘了。
這樣做是為了保證鏡像干凈。
進入數據庫容器:docker exec -it <container_id|container_name> /bin/bash?(PS:命令docker ps -a可以查看到該容器的id和name,或者在啟動容器的時候指定name)
/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搭建集群。
相關文章:?
SQL Server 急救包(First Responder Kit)入門教程
SQL Server on Linux 理由淺析
SQLServer On Linux Package List on CentOS
SQL Server on Linux的文件和目錄結構
個性化配置你的SQL Server on Linux
原文地址:http://www.cnblogs.com/kexxxfeng/p/6783534.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的mssql on linux 安装指导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发者需要理解的分布式原语
- 下一篇: .NET 的一点历史往事:和 Java