Instalacja MSSQL w Ubuntu. Pierwsze wrażenia.

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)

002-licence

 

ŁĄ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:

004_-ssms-version

 

Ok, wpisuję adres, podaje login sa, hasło… JEST! Properties… i co ?

 

003-ssms

 

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?

005_msdb-files

 

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:

 

 

Dodaj komentarz