在轉移到Mac OS X 陣營之后,如果想在本機上安裝微軟的mssql-server數據庫有三種方式:
- 第一種是在本機上安裝
MSSQL for Linux
版本。 - 第二種是安裝Windows虛擬機,然后在
虛擬機
里面使用ISO文件進行安裝。 - 第三種也就是我要講的方式,就是使用
Docker
進行安裝。
第一種方式和第二種方式缺點就是要自己找安裝包,第三種方式直接通過Docker的命令docker search mssql
就能搜索出來,然后拉取創建容器即可。
微軟也提供了相應的幫助文檔
鏡像是微軟官方的,但docker hub 奇怪的是並沒有把其標示為OFFICIAL。
1.下載鏡像
docker pull microsoft/mssql-server-linux
使用該命令就可以把數據庫的docker鏡像下載下來。
2.創建並運行容器
docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 -d microsoft/mssql-server-linux
這個密碼需要復雜密碼,要有大小寫和特殊符號,替換yourStrong(!)Password成你自己的密碼就行。如果只Linux服務器,可以不用端口映射,直接使用宿主模式
docker run --name MSSQL_1433 -m 512m -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' --net=host -d microsoft/mssql-server-linux
3.登入容器
docker exec -it MSSQL_1433 /bin/bash
4.連接到sqlcmd
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password'
5.執行SQL語句創建數據庫
CREATE DATABASE testDB go
如果只想創建數據庫,已經可以完成了,用Navicat Premium就可以連接到數據庫了。
6.還原數據庫
在容器內先創建一個文件夾
mkdir /var/opt/mssql/backup
在宿主把.bak備份文件復制到容器
sudo docker cp /Users/front/Downloads/beifen.bak MSSQL_1433:/var/opt/mssql/backup
運行sqlcmd到邏輯文件名稱和備份內的路徑的列表容器內
sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/beifen.bak"' | tr -s ' ' | cut -d ' ' -f 1-2
運行結果
LogicalName PhysicalName ---------------------------------- beifen D:\Program beifen_log D:\Program
還原數據庫
sudo docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'RESTORE DATABASE 數據庫名 FROM DISK = "/var/opt/mssql/backup/beifen.bak" WITH MOVE "beifen" TO "/var/opt/mssql/data/beifen.mdf", MOVE "beifen_Log" TO "/var/opt/mssql/data/beifen.ldf"'