Oto i on. SQL Server na systemie Linux. Wkroczył pod nazwą SQL Server v.Next Public Preview.
Spróbujmy zatem przejść przez instalację i zobaczyć z czym to się je 🙂
INSTALACJA W UBUNTU SERVER 16.04.1
Na początek dokładna informacja o distro jakiego używam. Zainstalowany w VBox:
misiekbest@ubu16:~$ uname -a Linux ubu16 4.4.0-47-generic #68-Ubuntu SMP Wed Oct 26 19:39:52 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux misiekbest@ubu16:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial
KROK 1 – Dodajemy klucze publiczne MS do apt
Aptitude, czyli po naszemu 'program do zarządzania pakietami (lub inaczej: innymi programami 🙂 ) pozwala na dodanie nowych repozytoriów programów, innych niż te, które dostarcza Ubuntu. ALE, żeby działały musimy najpierw mu powiedzieć, że ufamy nowym źródłom. Dlatego dodajemy certyfikat MS do apt poniższym poleceniem:
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
KROK 2 – Wskazujemy skąd apt ma pobierać paczki
Paczki z programami dystrybuowane są w apt przy pomocy zwykłych serwerów www. Poniższe polecenie doda definicję źródeł do specjalnego pliku, dzięki któremu apt będzie wiedział skąd ma ściągnąć binarki mssql-server i mssql-tools.
curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list | sudo tee /etc/apt/sources.list.d/mssql-server.list curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
KROK 3 – Aktualizujemy bazę dla apt
Zawsze i wszędzie 'apt-get update’ potrzebny będzie. Oczywiście przy instalacji nowych komponentów. Dzięki temu poleceniu apt 'odświeży’ listę plików ze wszystkich serwerów zewnętrznych i będziemy mieli pewność, że to co pobieramy jest aktualne 🙂 Ponieważ dopiero co dodaliśmy nowe źródło z serwerów Microsoft, musimy znacjonalizować pobranie nazw dostępnych pakietów.
sudo apt-get update
KROK 4 – Instalacja MSSQL Server
Wydajemy polecenie, które pobierze MSSQL wraz ze wszystkimi innymi pakietami (programami) potrzebnymi do jego sprawnego działania.
sudo apt-get install mssql-server
KROK 5 – Konfigurujemy MSSQL
Krok 4 zakończy się poniższym komunikatem:
+-------------------------------------------------------------------+ | Please run /opt/mssql/bin/sqlservr-setup to complete the setup of | | Microsoft(R) SQL Server(R). | +-------------------------------------------------------------------+
wykonujemy zatem polecenie:
sudo /opt/mssql/bin/sqlservr-setup
Instalator zapyta nas o kilka rzeczy:
- akceptacja licencji
- podanie hasła sa
- czy chcemy uruchomić serwer po zakończeniu setupu
- czy chcemy aby mssql startował razem z systemem
misiekbest@ubu16:~$ sudo /opt/mssql/bin/sqlservr-setup Microsoft(R) SQL Server(R) Setup You can abort setup at anytime by pressing Ctrl-C. Start this program with the --help option for information about running it in unattended mode. The license terms for this product can be downloaded from http://go.microsoft.com/fwlink/?LinkId=746388 and found in /usr/share/doc/mssql-server/LICENSE.TXT. Do you accept the license terms? If so, please type "YES": YES Please enter a password for the system administrator (SA) account: Please confirm the password for the system administrator (SA) account: Setting system administrator (SA) account password... Do you wish to start the SQL Server service now? [y/n]: y Do you wish to enable SQL Server to start on boot? [y/n]: y Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service. Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server-telemetry.service to /lib/systemd/system/mssql-server-telemetry.service. Setup completed successfully.
KROK 6 – Sprawdzamy czy MSSQL działa 🙂
Uruchamiamy polecenie:
systemctl status mssql-server
Jeśli wszystko poszło bez problemów powinniśmy ujrzeć coś na wzór tego co poniżej. Uwagę przyciąga kilka ciekawych informacji.
misiekbest@ubu16:~$ systemctl status mssql-server ● mssql-server.service - Microsoft(R) SQL Server(R) Database Engine Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled) Active: active (running) since nie 2016-11-20 11:59:22 CET; 2min 12s ago Main PID: 4408 (sqlservr) Tasks: 111 Memory: 551.3M CPU: 5.354s CGroup: /system.slice/mssql-server.service ├─4408 /opt/mssql/bin/sqlservr └─4420 /opt/mssql/bin/sqlservr lis 20 11:59:24 ubu16 sqlservr[4408]: [122B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [145B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [62B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [61B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [66B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [75B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [96B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [100B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [71B blob data] lis 20 11:59:24 ubu16 sqlservr[4408]: [124B blob data]
KROK 7 – Instalujemy narzędzia MSSQL
Microsoft SQL Tools Team będzie przygotowywał zestaw narzędzi do Linuxowej wersji. Nam przyda się przede wszystkim do podłączenia się do SQL z konsoli.
Uruchamiamy polecenie:
sudo apt-get install mssql-tools
podczas instalacji zostaniemy poproszeni o akceptację licencji (tym razem w formie ncurses..) dla toolsow i sterowników odbc (czyli dwa razy ujrzymy ekran podobny do poniższego)
ŁĄCZYMY SIĘ Z KONSOLI DO SERWERA SQL
Spójrzmy na możliwości polecenia sqlcmd. Man póki co nie iestnieje ;]
misiekbest@ubu16:~$ man sqlcmd Brak podręcznika dla sqlcmd Proszę przeczytać "man 7 undocumented", aby uzyskać pomoc, gdy strony podręcznika nie są dostępne. misiekbest@ubu16:~$ sqlcmd Microsoft (R) SQL Server Command Line Tool Version 14.0.0001.246 Linux Copyright (c) 2012 Microsoft. All rights reserved. usage: sqlcmd [-U login id] [-P password] [-S server or Dsn if -D is provided] [-H hostname] [-E trusted connection] [-N Encrypt Connection][-C Trust Server Certificate] [-d use database name] [-l login timeout] [-t query timeout] [-h headers] [-s colseparator] [-w screen width] [-a packetsize] [-e echo input] [-I Enable Quoted Identifiers] [-c cmdend] [-q "cmdline query"] [-Q "cmdline query" and exit] [-m errorlevel] [-V severitylevel] [-W remove trailing spaces] [-u unicode output] [-r[0|1] msgs to stderr] [-i inputfile] [-o outputfile] [-k[1|2] remove[replace] control characters] [-y variable length type display width] [-Y fixed length type display width] [-p[1] print statistics[colon format]] [-R use client regional setting] [-K application intent] [-M multisubnet failover] [-b On error batch abort] [-D Dsn flag, indicate -S is Dsn] [-X[1] disable commands, startup script, environment variables [and exit]] [-x disable variable substitution] [-? show syntax summary]
No to pora połączyć się do sqla:
sqlcmd -S localhost -U SA
ten poprosi nas o hasło SA. Wpisujemy i…. JEST! BA DUM TSSS!!
misiekbest@ubu16:~$ sqlcmd -S localhost -U SA Password: 1> SELECT @@VERSION 2> GO ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Microsoft SQL Server vNext (CTP1) - 14.0.1.246 (X64) Nov 1 2016 23:24:39 Copyright (c) Microsoft Corporation on Linux (Ubuntu 16.04.1 LTS) (1 rows affected) 1> select database_id, name From sys.databases 2> go database_id name ----------- -------------------------------------------------------------------------------------------------------------------------------- 1 master 2 tempdb 3 model 4 msdb (4 rows affected)
PODŁĄCZAMY SIĘ PRZEZ MANAGEMENT STUDIO
A teraz SSMS. Wersja, która posiadam:
Ok, wpisuję adres, podaje login sa, hasło… JEST! Properties… i co ?
I widzimy, że SSMS wykrywa to jako Developer 14.0.1.246! Przypominam, że aktualnie mamy SQL Server 2016 ver 13.0.xxx a więc mamy podbicie pierwszej cyferki 🙂 Ale system jaki wykrywa to NT 6.2 😉
Ciekawość ciągnie dalej.. Co z plikami baz?
Wygląda to śmiesznie 🙂 Postanowiłem więc przeklikać kilka okien, stworzyć bazę, tabelę, uzupełnić danymi, zrobić backup i go odtworzyć.
Wyniki do obejrzenia poniżej: