OSX'te Sql Server Yüklemek ve Kullanmak

10 Ekim 2017 3 dk okuma süresi 18 okunma

Bildiğiniz gibi Microsoft Unix sistemler üzerinde de kullanabilmemiz için Sql Server'ın farklı bir versiyonu olan Sql Server For Linux çıkarttı. Bu sayede Unix sistemler üzerinde (Linux, OSX) Sql Server'ı sorunsuz bir şekilde kullanabiliyoruz. Tabi malesef aracı bir program kurmamız gerekiyor ve bu da son zamanların en popüler teknolojilerinden birisi olan Docker.

Docker'ı çok kısaca ve basitçe minimum sistem gereksinimi olan ve sadece belirlenen iş için konfigüre edilmiş bir sanal makine olarak tanımlayabiliriz.

Docker Yükleyin

Docker'ın Mac için bir dmg dosyası var ve kolayca mac'te kurulum yapabilirsiniz. Bunun için Docker'ın sayfasından dmg dosyasını indirebillirsiniz. Docker'ı indirin.

Kurulumu için adımları izleyin ve kurulumu bitirdikten sonra Docker'ı başlatın. Bildiğiniz gibi Sql Server biraz fazla ram gereksinimi olan bir uygulama ve Docker makinenizden varsayılan olarak 2 GB'lık bir ram paylaşımı yapıyor. İlk olarak bu ayarı değiştirip minimum 3.25 GB ve üzerine ayarlamanız gerekiyor. Bunun için Preferences > Advanced tabına tıklayın ve ayarlamanızı yapın.

Sql Server'ı indirin

Docker'ı yükleyip gerekli ayarlamayı yaptıktan sonra Sql Server'ı indirip kurmamız gerekiyor ki bu terminal üzerinden kolayca indirilebiliyor. Aşağıdaki kod Sql Server'ın en son Docker imajını bilgisayarınıza indirmenizi sağlar.

sudo docker pull microsoft/mssql-server-linux

İndirme işlemi bittikten sonra Docker imajını çalıştırmamız gerekiyor. Bunun içinde aşağıdaki kodu kullanabilirsiniz.

docker run -d --name localSql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=DockerSa@2017' -p 1433:1433 microsoft/mssql-server-linux

Bu kodun açılımı da şudur.

-d: Docker container'ının daemon mode'da çalıştırılmasını sağlar. Daemon mode uygulamanın yüklenmesinin arka planda sessiz sedasız bir şekilde tamamlanmasını sağlar.

--name localSql: Bu komut container'ınızın adını belirtmenize yarar. İsteğe bağlıdır yani bu komutu yazmak zorunda değilsiniz ama sonuçta birden fazla container yaratacaksanız isim vermeniz karışıklığı önlemeniz açısından sizin için önemlidir.

-e 'ACCEPT_EULA=Y': Bu komut ile EULA'yı kabul ettiğinizi belirtiyorsunuz.

-e 'SA_PASSWORD=DockerSa@2017': Komuttan da anlaşılacağı üzere SA (System Admin) şifrenizi belirliyorsunuz. Eğer aşağıdaki gibi bir hata alırsanız daha güçlü bir parola yazarak tekrar deneyin.

Microsoft(R) SQL Server(R) setup failed with error code 1. 
Please check the setup log in /var/opt/mssql/log for more information.

-p 1433:1433: Container'ın hangi port üzerinden çalışacağını belirtiyorsunuz. Sql Server'ın varsayılan portu 1433'tür.

microsoft/mssql-server-linux: Docker'ın hangi imajı kullanacağını belirtiyorsunuz.

Tüm bunların sonunda Sql Server'ın Docker için olan container'ını kurmuş ve kendinize bir Sql Instance'ı yaratmış oluyorsunuz. Yaratmış olduğunuz instance'ları da docker ps komutu ile listeleyebilirsiniz. Aşağıdaki ekran görüntüsünden detaylı görebilirsiniz.

mac üzererinde docker ve sql server
mac üzererinde docker ve sql server

Son olarakta yazdığımız sorguları çalıştırabilmek için sql-cli kurmamız gerekiyor. Onun kurulumu da oldukça basit. İzinler ile ilgili herhangi bir sıkıntı yaşamamak için yine sudo komutu ile beraber kullanıyoruz.

sudo npm install -g sql-cli

Bunu da tamamladıktan sonra instance'a bağlanabiliriz. Bağlanmak için de aşağıdaki komutu kullanıyoruz.

mssql -u sa -p DockerSa@2017

Artık istediğiniz gibi Sql Server kullanabilirsiniz. Başlangıç olarak aşağıdaki komut ile yeni bir veritabanı ve tablo yaratabilirsiniz.

CREATE DATABASE TestDB
USE TestDB
CREATE TABLE Kitap (Id INT, KitapAdi NVARCHAR(50), Yıl DATETIME)
Yazılarıma abone olmak ister misiniz?
Spam yapılmaz, sadece bildirim amaçlıdır. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlginizi çekebilecek diğer yazılar.
Redis nedir, kullanım yerleri, avantaj ve dezavantajları nedir? Populerliği her geçen gün artan redis, in-memory tabanlı key-value mantığı ile çalışan ve yüksek performans sağlayan açık kaynak nosql veritabanıdır.

Mssql kullanan herkes en az bir kere kullanmıştır fakat aradaki farkı pek sorgulamazlar. Bu yazıda stored procedure ile function arasındaki farkların neler olduğunu öğrenebilirsiniz.

Projelerde performans için sql sorgularının ciddi şekilde optimize edilmesi gerekebiliyor. Özellikle yoğun ziyaretçisi olan sistemlerde bu kaçınılmaz. Sql server'da cpu'yu hangi veritabanı ve hangi sorguların en çok kullandığını 2 basit sorgu ile görebilirsiniz.