SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software
Development resources, articles, tutorials, code samples, tools and downloads for ASP.Net, SQL Server, Reporting Services, T-SQL, Windows, AWS, SAP HANA and ABAP


MacOS Üzerine Docker ile SQL Server 2019 Kurulumu ve Çalıştırılması

Bu yazımda Microsoft SQL Server 2019 veritabanı uygulamasını Docker kullanarak Mac üzerinde kurmayı ve Azure Data Studio uygulamasını indirerek Docker container vasıtası ile kurduğumuz MSSQL veritabanına bağlanmak için bir yöntem paylaşacağım.

Sıkı bir MacOS kullanıcısı iseniz ve Mac üzerinde uygulama geliştiriyorsanız, Microsoft'un SQL Server veritabanı platformunun artık Linux dağıtımı olduğunu biliyorsunuzdur. Eğer SQL Server gibi bir veritabanı sunucusunu geliştirme yaptığınız makinada çalıştırmak isteseniz de Windows OS plarformuna geçmeyi gönlünüz istemiyorsa, SQL Server 2019 içeren bir Docker image ile ayağa kaldıracağınız Docker container yardımıyla Mac işletim sisteminiz üzerinde de bir MSSQL sunucunuz olabilir.

SQL Server 2019 indirmek için paylaştığım bağlantıyı inceleyebilirsiniz. Bu bağlantıdan ulaşarak indireceğiniz SQL Server sunucularını değişik işletim sistemleri üzerinde deneme amaçlı kullanabilirsiniz.

Eğer doğrudan Microsoft SQL Server Linux for Docker Engine image dosyasına ulaşmak istiyorsanız, hub.docker.com sayfasını ziyaret edebilirsiniz.


Yazımın bundan sonraki kısmında kendi kullandığım Mac makinamda kurduğum SQL Server 2019 veritabanı uygulamasının kurulum adımlarını sizlerle paylaşacağım.


Mac için Docker Kurulumu

İlk yapacağımız iş Mac üzerine Docker Desktop uygulamasını kurmak.
Kurulumun adımları docs.docker.com sitesinde açıklanmış.
Aslında yapacağımız Mac için Docker Desktop bağlantısı uygulamayı indirmek ve kurulum adımlarına başlamak.

Henüz üye değilseniz ücretsiz olarak docker.com sitesine üye olmanız gerekiyor.
Eğer zaten üyeyseniz Docker ID 'nizi kullanarak login olarak devam etmek.
Ardından Docker Desktop for Mac için çalıştırılabilir .dmg MacOS disk imaj dosyasını indirebileceksiniz.
Docker.dmg dosyasına çift tıkladıktan sonra Docker.app uygulama ikonunu Applications dizinine taşıyarak artık Docker uygulamasını kullanabiliyor olacaksınız.

Docker uygulamasını çalıştırdıktan sonra ilk yapacağımız SQL Server için konfigürasyon ayarlarını yapmak.
Mac'inizin üst menüsünde Docker ikonuna tıklayacak açacağınız menüden "Preferences..." seçeneği ile RAM yani bellek miktarı tercihimizi tanımlayabiliriz.
Advanced sekmesinde "Memory" miktarını makinanızın gücüne göre ayarlayabilirsiniz, 4 veya mümkünse 6 GB RAM tercihiniz Docker yardımı ile SQL Server 2019 image'ını performanslı bir şekilde çalıştırabilmenize olanak sağlayacaktır.

Artık bir sonraki adım olan SQL Server 2019 veri platformu sunucusunu içeren imajı indirme va çalıştırma adımına geçebiliriz.


SQL Server 2019 Docker İmajını İndirme

Yazımın daha önceki bölümlerinde paylaştığım Docker Hub üzerindeki Microsoft SQL Server sayfasından kurmak ve çalışmak istediğiniz SQL Server sürümüne ait image dosyasını bulabilirsiniz.

Ben Mac makinam üzerinde MSSQL Server'un en son sürümünü kurmuştum, yani SQL Server 2019'un en son dağıtımını.
O da mcr.microsoft.com/mssql/server:2019-latest isimli Docker image dosyasına karşılık geliyor.

Mac üzerine kurmak istediğiniz SQL Server Docker imaj dosyasına karar verdikten sonra, yapmanız gereken Mac üzerinde bir Terminal ekranı açmak.
Applications arasından Terminal uygulamasını çalıştırınız.

Aşağıdaki gibi docker pull mcr.microsoft.com/mssql/server:2019-latest komutunu Terminal ekranında çalıştırın.

en son SQL Server 2019 sürümününün Docker imajını indirmek

Docker Pull komutu ile Docker Hub'tan SQL Server 2019 imajı parça parça indirilecek. Bu biraz zaman alabilir.

Eralper-MacBook-Pro:~ eralper$ docker pull mcr.microsoft.com/mssql/server:2019-latest
2019-latest: Pulling from mssql/server
59ab41dd721a: Pull complete
57da90bec92c: Pull complete
06fe57530625: Pull complete
5a6315cba1ff: Pull complete
739f58768b3f: Pull complete
b77fc38faae9: Pull complete
11ca25075c70: Pull complete
c957a137b2c5: Pull complete
4794f7ad490c: Pull complete
Digest: sha256:0753f9e9c614c469e1e6b98ea60b21e20abd249323c9f6a9eab476c87a8cf826
Status: Downloaded newer image for mcr.microsoft.com/mssql/server:2019-latest
mcr.microsoft.com/mssql/server:2019-latest
Eralper-MacBook-Pro:~ eralper$
Code

SQL Server 2019 docker imajının indirilmesi tamamlanınca, aşağıdaki formattaki şekilde Terminal ekranın komut satırından docker image'ını yeni bir "Docker Container" içinde çalıştırabiliriz.

Burada önemli olan SA_PASSWORD yani System Admin, sa kullanıcısının şifresini tanımlamak. Kuvvetli bir şifre tanımlamanız gerekli. Bu şifre ileride çok gerekli olacak. Docker imajını çalıştırırken verdiğiniz "sa" kullanıcı parolasını unutmayınız.
1433 nolu port, SQL Server'a bağlanırken kullanılan varsayılan porttur. Aşağıdaki komutta -p parametresi ile tanımlanıyor.

Diğer bir önemli parametre de "name" parametresi. Bu çalıştıracağınız SQL Server 2019 docker container'ına verdiğimiz isim. Mac'iniz üzerinde çalıştırdığınız Container sayısı arttıkça kullandığınız isimlendirme işinizi ileride çok kolaylaştıracaktır.

"Run" komutunun aldığı en önemli parametre de belki SQL Server Docker Hub adresinden indirerek kurmayı seçtiğiniz docker image dosyasının adı, bu yazı için geçerli olan docker imajı da mcr.microsoft.com/mssql/server:2019-latest

Docker Run komutu adresinden tüm Run komut satırı parametrelerini görebilirsiniz.

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Eralper@6" -p 1433:1433 --name sqlserver2019 -d mcr.microsoft.com/mssql/server:2019-latest
Code

"docker run" komutu başarılı bir şekilde çalıştıysa, aşağıdaki "docker" komutu çalıştırıldığında gösterilecek listede "container" statüsü yani durumu "Up" (çalışıyor) olarak listelenecektir.

sudo docker ps -a
Code

docker container listesi

docker ps veya "process status" komutu ile docker container'larını listeleyebiliriz.
Bu docker container'lar hakkında Container ID, Image (kullanılan docker image), Created (Oluşturulduğu tarih), Status (Durumu), Ports, Names gibi bilgileri de görüntülenir.

Artık üzerinde bir SQL Server instance 'ı çalıştıran bir Docker Container 'ımız Mac üzerinde çalışır durumda.
Şimdi SQL Server 2019 instance'ımıza bağlanarak SQL komutlarımızı çalıştırabilir durumdayız.


SQLCMD ile SQL Server 2019 üzerinde Sorgu Çalıştırmak

Aşağıdaki kodu Terminal uygulamasında çalıştırırsak bize "sqlserver2019" isimli Docker Container üzerinde bir script çağırma olanağı sağlar

sudo docker exec -it sqlserver2019 "bash"
Code

sqlcmd script'ini aşağıdaki formatta çalıştırarak SQL Server default instance'ımıza "sa" kullanıcısı ve parolası ile bağlanmış oluruz.

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Eralper@6"
Code

SQLCMD komut satırı aktif olduğunda artık Transact-SQL sorgularımızı SQL Server 2019 veritabanı üzerinde çalıştırabilir ve sorgularımızı veri üzerinde atabiliriz.
Örneğin, en basit SQL sorgularından birisi, hangi SQL Server sürümü ile çalıştığımızı anlamak için kullandığımız @@version system parametresini görüntülemek olacaktır.
"GO" komutu ile o ana dek yazılan SQL sorgusu çalıştırılır.

SELECT @@version
go
Code

Yukarıdaki SQL sorgusunun çıktısı aşağıdaki gibidir.

connect docker container to execute SQLCmd query

Açıkçası SQLCMD interface'in rahat bir SQL kod geliştirme ortamı sağlamadığına inanıyorum. Eğer Mac'iniz üzerinde bir SQL Server client uygulaması kurmayı tercih ederseniz, daha hızlı ve kolay bir şekilde SQL Server 2019 veritabanlarınız üzerinde SQL geliştirmelerinizi tamamlayabileceğinizi söyleyebilirim.

Not: SQLCMD komut satırından çıkmak için "Control + C" tuş kombinasyonunu kullanabilirsiniz


MacOS üzerinde Azure Data Studio Kurulumu

Mac makinanız üzerinde Docker vasıtası ile bir SQL Server 2019 docker container'ı çalıştırdıysanız, bu kurduğunuz SQL Server instance'ı ile etkileşim için en kolay ve rahat yöntem bir SQL Server client aracı kullanmaktır.

Mac'iniz için SQL Server Management Studio benzeri bir araç da yine Microsoft tarafından geliştirilen Azure Data Studio for macOS

MacOS için Azure Data Studio bu adresten indirilebilir.

İndirmeyi tamamladıktan sonra sıkıştırılmış zip dosyasına çift tıklayarak açın ve Azure Data Studio.app dosyasını Applications dizinine sürükleyip bırakın. Artık Applications yani Uygulamalar'ınız altında Azure Data Studio'yu görebilirsiniz.

Azure Data Studio'yu çalıştırdıktan sonra aşağıda gördüğünüz gibi SQL Server sunucusuna bağlantıyı tanımlayabilirsiniz.

Azure Data Studio ile SQL Server'a bağlanmak

Ardından Azure Data Studio'nun sağladığı GUI üzerinden SQL sorgularınızı yazabilir ve SQL Server geliştirmelerinizi yapabilirsiniz.


SQL Server 2019 çalıştıran Docker Container 'ı Durdurmak

SQL Server 2019 üzerinde geliştirme çalışmalarınızı tamamladıktan sonra artık SQL veritabanı sunucusunun çalışmasına gerek kalmadığında, bilgisayarınızın kaynaklarını tüketmemesi için SQL Server'ın üzerinde çalıştığı Docker Container 'ı durdurabilirsiniz.
Bunun için aşağıdaki "docker" komutunu bir "Terminal" ekranında çalıştırmanız yeterli.

docker stop sqlserver2019
Code

Yukarıdaki "docker stop" komutuna parametre olarak geçtiğimiz "sqlserver2019", SQL Server sunucusunu çalıştırırken "docker container"a verdiğimiz isimdi.


SQL Server 2019 Sunucusunu Tekrar Çalıştırmak

Mac bilgisayarınızı yeniden açtığınızda veya SQL Server 2019 Docker Container'ını "stop" komutu ile durdurduğunuzda, veritabanı sunucusunu tekrar aktif, çalışır hale getirmek istediğinizde tek yapmanız gereken "docker start" komutunu kullanmak olacaktır.

docker start sqlserver2019
Code

Docker start komutuna parametre olarak SQL Server 2019 sunucusunu çalıştıran docker container'ın adını veriyoruz. Eğer kullandığını container ismini hatırlayamazsanız aşağıdaki iki komuttan birisini kullanabilirsiniz.

docker ps -a
docker ps -all
Code

"docker ps" komutu MacOS makinanızdaki container listesini verir. Görüntülenen listedeki "name" sütununda gösterilen ismi, "docker start" komutuna argüman olarak geçebilirsiniz.


The container name "/sqlserver2019" is already in use by container

Eğer SQL Server 2019 veritabanı sunucusunu barındıran "docker container"ı yeniden çalıştırmak (restart) etmek için bu eğitim dökümanında anlattığımız ilk adımlardaki komut olan aşağıdaki "docker run" komutunu çalıştırırsanız hata alırsınız.

sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Eralper@6" -p 1433:1433 --name sqlserver2019 -d mcr.microsoft.com/mssql/server:2019-latest
Code

docker: Error response from daemon: Conflict. The container name "/sqlserver2019" is already in use by container "6df5a6ca512acc72b37f33d01607e2801f8b6c1574a326fbea51bb90c51c95d5". You have to remove (or rename) that container to be able to reuse that name.

Dediğim gibi burada SQL Server 2019'a ait Microsoft'un yayınladığı en son imaj'dan yeni bir docker container'ı oluşturmaya çalışıyoruz. Ve bu ikinci container için de daha önceden kullandığımız ismi kullanıyoruz. Hata bundan dolayı kaynaklanıyor.
Yapmamız gereken bir önceki bölümde bahsettiğim şekilde "docker start" komutunu kullanarak daha önce kurduğumuz container'ı ayağa kaldırmak olacak.


SQL Server

SQL Server 2019 Installation
download SQL Server 2019
download SQL Server 2017
download SQL Server 2016
download SQL Server 2014
download SQL Server 2012
MacOS ve SQL Server 2019


Copyright © 2004 - 2021 Eralper YILMAZ. All rights reserved.