第一次使用可以先docker pull下載它,需要花上一段時間喔,因為image有1G多
docker pull microsoft/mssql-server-linux
啟動就很簡單了
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux
其中環境變數ACCEPT_EULA與SA_PASSWORD是必要的
怎麼連到container中的mssql呢?這邊介紹兩種
第一種是在命令列模式下
我們需要使用docker exec幫你連上container後下指令,可接受container id或是name,其中container id可只輸前三碼就行
docker exec -it <container_id|container_name> cmd
指令cmd的話需要使用sqlcmd,這個sqlcmd本身已包含在image裡,可以直接使用
可以先進container的bash再下sqlcmd,如下
docker exec -it focused_kare bash
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "<Passw0rd>"
select @@version
go
目前版本是Microsoft SQL Server vNext (CTP1.4)
打成一行也是可以,就是直接進container執行sqlcmd
docker exec -it focused_kare /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P "<Passw0rd>"
第二種就是透過GUI的client
因為是使用Mac,沒辦法安裝SSMS,只好使用SQL Developer囉,要讓SQL Developer可以連上SQL Server,需先安裝jTDS JDBC Driver才行喔,連線資訊設定如下圖,基本上密碼不要打錯就應該可以連得上囉
連上後測試一下
因為SQL Server vNext幾乎包含了SQL 2016的New features,所以來試試幾個新的T-SQL增強吧,比如說SERVERPROPERTY,有多幾個屬性
SELECT SERVERPROPERTY('ProductVersion') AS ProductVersion, SERVERPROPERTY('ProductLevel') AS ProductLevel, SERVERPROPERTY('Edition') AS Edition, SERVERPROPERTY('EngineEdition') AS EngineEdition, SERVERPROPERTY('InstanceDefaultDataPath') AS InstanceDefaultDataPath, SERVERPROPERTY('InstanceDefaultLogPath') AS InstanceDefaultLogPath, SERVERPROPERTY('ProductBuild') AS ProductBuild, SERVERPROPERTY('ProductBuildType') AS ProductBuildType, SERVERPROPERTY('ProductMajorVersion') AS ProductMajorVersion, SERVERPROPERTY('ProductMinorVersion') AS ProductMinorVersion, SERVERPROPERTY('ProductUpdateLevel') AS ProductUpdateLevel, SERVERPROPERTY('ProductUpdateReference') AS ProductUpdateReference;
GO
下面是試試SQL 2016的Alter table with online的增強,及drop if子句(這MySQL一直都有的)
create database test;
go
create table test.dbo.t1 (id int not null);
go
insert into test.dbo.t1 values (1),(2),(3);
go
alter table test.dbo.t1 alter column id decimal(5,2) with (online = on);
go
drop table if exists test.dbo.t1;
go
下面是試試SQL 2016的Alter table with online的增強,及drop if子句(這MySQL一直都有的)
create database test;
go
create table test.dbo.t1 (id int not null);
go
insert into test.dbo.t1 values (1),(2),(3);
go
alter table test.dbo.t1 alter column id decimal(5,2) with (online = on);
go
drop table if exists test.dbo.t1;
go
來試試SQL server vNext獨有的Linux Process Dynamic Management Views,不過沒資料
select * from sys.dm_linux_proc_sql_threads;
剛剛SERVERPROPERTY那邊有得到data file的路徑,我們就可以登入container執行bash去查看有哪些mdf,ldf放哪
ls -l /var/opt/mssql/data/
0 意見:
張貼留言