İlk bölümünde .NET Core ve Visual Studio for Mac kullanarak macOS üzerinde .NET ile nasıl geliştirme yapabileceğimize değinmiştik. 2. Bölümde ise veritabanı olarak nasıl MSSQL kullanabileceğimizi inceleyeceğiz. MSSQL’in Linux versiyonu olmasına rağmen bir macOS versiyonu bulunmuyor. macOS üzerinde eğer veritabanı olarak MSSQL kullanmak istiyorsanız Azure ne güne duruyor diyebilirsiniz. Ancak ben localde çalışmak istiyorum ya da bulut kullanmamam gerekiyor diyorsanız Docker for Mac ve Visual Studio Code kullanabilirsiniz.
Öncelikle Docker for Mac kurulumu ile başlayalım. Buradan indirebileceğiniz kurulum dosyasını açtığınızda Resim-1’de göreceğiniz standart mac kurulum ekranı çıkıyor. Basit bir sürükle bırak işlemi ile ilgili kurulumu tamamlayabilirsiniz.
Resim-1: Docker for Mac kurulum
Kurulum sonrasında Launchpad ya da Finder ile Applications altından Docker’ı çalıştırabilirsiniz. Sonrasında menu bar’da docker ikonunu ve Resim-2’de göreceğiniz Docker ekranını göreceksiniz.
Resim-2: Docker for Mac
Kurulum sonrasında Terminal ekranını açarak “docker version” komutu ile yüklü olan docker versiyonu ve diğer bilgileri görebilirsiniz.
Resim-3: docker version komut çıktısı
Docker kurulum işlemini tamamladıktan sonra MSSQL docker image indirelim. Bunun için aşağıda yer alan komutu Terminal ekranında çalıştıralım:
docker pull microsoft/mssql-server-linux:2017-latest
Resim-4: MSSQL docker image indirme işlemi
Docker image indirme işlemi tamamlandıktan sonra sıra docker run komutuna geldi.
docker run -e ‘ACCEPT_EULA=Y’ -e ‘SA_PASSWORD=P@ssw0rd1’ -p 1433:1433 –name sqlcontainer -d microsoft/mssql-server-linux:2017-latest
Parametrelerin detaylarına bakacak olursak:
- -e ‘ACCEPT_EULA=Y’ : Son kullanıcı lisans sözleşmesini kabul etmek için gerekiyor.
- -e ‘SA_PASSWORD=P@ssw0rd1’ : Min. 8 karakter ve SQL Server şifre standartlarında olmalı.
- -p 1433:1433 : Container portunu (2. değer) host portuna (1. değer) yönlendirmek için
- –name sqlcontainer : Container için anlaşılır bir isim veriyoruz. Eğer bu parametreyi vermezsek random bir isim üretiliyor.
- -d : Detached Mode (mevcut Shell’den bağımsız olarak çalıştırmak)
- microsoft/mssql-server-linux:2017-latest : Güncel The SQL Server 2017 Linux container image.
Resim-5: docker run
Docker üzerinde çalışır halde bir MSSQL container’ımız var, peki nasıl bağlanabiliriz? Burada Terminal üzerinden sorgu atmak istemiyorum diyorsanız, SSMS’in ( SQL Server Management Studio) bir macOS versiyonu da (henüz) olmadığı için Visual Studio Code kullanabilirsiniz. Bunun için Microsoft’un SQL Server (mssql) extension’ını kurmamız gerekiyor.
Resim-6: Visual Studio Code mssql extension
Extension’ı kurup reload ettikten sonra, commad palette üzerinden MS SQL: Connect komutu ile SQL Server’a bağlanalım.
Resim-7: MS SQL command palette
MS SQL Connect komutunu çalıştırınca Resim-8’de göreceğiniz editor dilinin SQL olarak değiştirilmesi gerektiği ile ilgili bir soru geliyor. Yes seçeneği ile kabul ediyoruz. Bu sırada output ekranında SQL tools servisinin yükleme işlemi de arka planda yapılıyor.
Resim-8: Language seçimi
Yes seçeneğini seçtikten sonra language mode seçenekleri çıkıyor. Buradan SQL (sql) seçeneğini Resim-9’de göreceğiniz gibi seçerek devam ediyoruz.
Resim-9: Select Language Mode
Dil seçeneğini seçtikten sonra bizden bağlantı bilgileri isteyecek. Hostname\instance, Azure Sql/ADO.NET connection string değerlerini yazabilirsiniz.
Resim-10: MSSQL connection string
Daha sonra bizden bağlanmak istediğiniz database ismini isteyecek, henüz bir database oluşturmadığımız için (system tabloları ile de bir işimiz yoksa) boş geçebiliriz.
Resim-11: Database name
Integrated authentication mı yoksa kullanıcı adı/şifre kullanarak (SQL Login) giriş yapmak istediğimizi belirtiyoruz. SQL Login seçerek devam ediyorum.
Resim-12: Authentication type
Bağlanacağımız kullanıcı bilgisini giriyoruz. Farklı bir kullanıcı oluşturmadığımız için sa ile giriş yapıyorum.
Resim-13: User name
Container oluştururken belirlediğimiz P@ssw0rd1 şifresini giriyorum.
Resim-14: Password
Bizden şifre bilgisini kaydetmek isteyip istemediğimizi soruyor. Eğer kaydetmezseniz her bağlantıda tekrar soracağını da düşünerek cevap vermenizi öneririm.
Resim-15: Şifre kaydetme
Son olarak da bizden kaydedilecek profil için bir isim istiyor. Profile1 yazarak geçiyorum.
Resim-16: Profile kayıt
Bu ayarları User Settings altında görebilir ve değiştirebilirsiniz. Command + Shift + P ile command palette açarak “user settings” keyword’ünü yazıp açabilirsiniz.
Resim-17: User Settings
SELECT * FROM sys.tables sorgusunu test amaçlı olarak çalıştıralım. Editöre sorguyu yazdıktan sonra command palette üzerinden Execute Query ya da Command + Shift + E ile sorguyu çalıştırabilirsiniz.
Resim-18: Execute Query
Son olarak da sorgu sonuçlarımızı sağ tarafta görebiliyoruz.
Resim-19: Sorgu sonuçları
Visual Studio Code her konuda yardımcı olsa da Microsoft’un ürünlerine yakın bir zamanda SSMS for Mac de dahil edebileceğini düşünüyorum.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs: Visual Studio, Visual Studio Code, MSSQL, SQL Server, Docker, Docker for Mac, SSMS, macOS