W tym artykule omówimy, jak zainstalować Microsoft SQL lub MSSQL w systemie Linux. Microsoft SQL, potocznie nazywany MSSQL, to stworzony przez Microsoft system zarządzania relacyjnymi bazami danych. Open-source MySQL i PostgreSQL są zwykle synonimami dystrybucji Linuksa, ale obsługiwana jest również praca z MSSQL w Linuksie. MSSQL oferuje pewne funkcje, których nie oferują jego odpowiedniki typu open source, i w zależności od wymagań aplikacji może być właściwym wyborem dla RDBMS. W tym samouczku omówimy, jak zainstalować MSSQL na CentOS 7 i Ubuntu 16.04.
Kontrola przed lotem
- Musisz sprawdzić, czy Twój serwer ma co najmniej 2 GB pamięci
- Te instrukcje są wykonywane odpowiednio na serwerach CentOS 7 i Ubuntu 16.04 LTS jako użytkownik root
CentOS 7
Krok 1:Dodaj repozytorium podglądu MSSQL 2019
Najpierw, zgodnie z najlepszą praktyką, upewnij się, że wszystkie pakiety są aktualne:
root@centos ~]# yum update -y
Następnie musimy powiedzieć menedżerowi pakietów yum, gdzie szukać pakietu mssql-server, dodając odpowiednie repozytorium:
root@centos ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo
Krok 2:Zainstaluj serwer SQL
Teraz, gdy yum zna repozytorium MSSQL, możemy użyć go do zainstalowania pakietu:
root@centos ~]# yum install -y mssql-server
Krok 3:Skonfiguruj serwer MSSQL
Następnie musimy skonfigurować SQL hasłem administratora systemu i potwierdzić edycję, której chcemy użyć. Ten samouczek będzie korzystał z wersji deweloperskiej, wybór 2, ponieważ jest bezpłatny:
root@centos ~]# /opt/mssql/bin/mssql-conf setup
usermod: no changes
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:Yes
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
This is an evaluation version. There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
Następnie musimy sprawdzić, czy usługa mssql jest uruchomiona:
root@centos ~]# systemctl status mssql-server
Wynik powinien wyglądać mniej więcej tak:
mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-10-23 20:18:03 EDT; 2min 45s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 61529 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─61529 /opt/mssql/bin/sqlservr
└─61549 /opt/mssql/bin/sqlservr
Krok 4 (opcjonalnie):Zezwól na połączenia zdalne
Jeśli chcesz, aby Twój serwer SQL był dostępny zdalnie, musisz otworzyć port SQL Server:
Uwaga :Postępuj ostrożnie. Zapory ogniowe zapewniają bezpieczeństwo serwera, ograniczając do niego dostęp. O ile nie planujesz zdalnego dostępu do programu SQL Server, otwieranie tego portu nie jest konieczne.
root@centos ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
Po dodaniu reguły musimy ponownie załadować nasze reguły zapory i sprawdzić, czy port jest otwarty:
[root@centos ~]# firewall-cmd --reload
success
root@centos ~]# firewall-cmd --list-ports
1433/tcp
Krok 5:Dodaj repozytorium Microsoft Red Hat
Teraz potrzebujemy sposobu na interakcję z naszym serwerem SQL. Najpierw dodajmy kolejne repozytorium, abyśmy mogli użyć yum do zainstalowania narzędzi wiersza poleceń SQL Server
root@centos ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
Krok 6:Zainstaluj i skonfiguruj narzędzia wiersza poleceń MSSQL Server
Teraz, gdy yum jest świadomy pakietów, które chcemy zainstalować, musimy je zainstalować. Należy pamiętać, że podczas instalacji tych pakietów pojawi się kilka interaktywnych monitów o zaakceptowanie warunków licencji:
root@centos ~]# yum install -y mssql-tools unixODBC-devel
Dla ułatwienia użytkowania możemy dodać ścieżkę
/opt/mssql-tools/bin/
do zmiennej PATH na serwerze, abyśmy mogli wykonywać polecenia sql z dowolnego miejsca na serwerze:
root@centos ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@centos ~]# source ~/.bashrc
Ostatnim krokiem jest sprawdzenie, czy możemy nawiązać połączenie z SQL Server:
root@centos ~]# sqlcmd -S localhost -U SA
Password:
1>
Ubuntu 18.04 LTS
Krok 1:Dodaj repozytorium podglądu MSSQL Server Ubuntu 2019
Najpierw zaktualizujmy pakiety serwerów:
root@ubuntu1604:~# apt-get update -y
Po zaktualizowaniu pakietów serwera musimy dodać klucze GPG dla repozytorium, które chcemy dodać. Klucze GPG umożliwiają użytkownikom Linuksa weryfikację poprawności plików i potwierdzenie, że pochodzą one z zaufanych źródeł:
t@ubuntu1604:~# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Teraz, gdy klucze GPG są na swoim miejscu, możemy dodać repozytorium:
root@ubuntu1604:~# add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-preview.list)"
Repozytorium, które właśnie dodaliśmy, wymaga połączenia HTTPS. Aby upewnić się, że apt może połączyć się z repozytorium, musimy mieć pewność, że może łączyć się przez https:
root@ubuntu1604:~# apt-get install -y apt-transport-https
Krok 2:Zainstaluj serwer MSSQL
Teraz, gdy repozytorium zawierające pakiety MSSQL Server jest dostępne, pozostaje tylko upewnić się, że apt wie o nowym repozytorium i zainstalować MSSQL Server:
apt-get update -y
apt-get install -y mssql-server
Krok 3:Skonfiguruj serwer MSSQL
Krok konfiguracji jest taki sam zarówno w CentOS 7, jak i Ubuntu 16.04. Podczas procesu konfiguracji pojawią się interaktywne monity o wybranie wersji SQL Server, zaakceptowanie warunków licencji i wprowadzenie hasła administratora SQL:
root@ubuntu1604:~# /opt/mssql/bin/mssql-conf setup
usermod: no changes
Choose an edition of SQL Server:
1) Evaluation (free, no production use rights, 180-day limit)
2) Developer (free, no production use rights)
3) Express (free)
4) Web (PAID)
5) Standard (PAID)
6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded
7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum
8) I bought a license through a retail sales channel and have a product key to enter.
Details about editions can be found at
https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409
Use of PAID editions of this software requires separate licensing through a
Microsoft Volume Licensing program.
By choosing a PAID edition, you are verifying that you have the appropriate
number of licenses in place to install and run this software.
Enter your edition(1-8): 2
The license terms for this product can be found in
/usr/share/doc/mssql-server or downloaded from:
https://go.microsoft.com/fwlink/?LinkId=855862&clcid=0x409
The privacy statement can be viewed at:
https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409
Do you accept the license terms? [Yes/No]:Yes
Enter the SQL Server system administrator password:
Confirm the SQL Server system administrator password:
Configuring SQL Server...
This is an evaluation version. There are [116] days left in the evaluation period.
ForceFlush is enabled for this instance.
ForceFlush feature is enabled for log durability.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /lib/systemd/system/mssql-server.service.
Setup has completed successfully. SQL Server is now starting.
Serwer MSSQL powinien teraz działać i być włączony. Aby sprawdzić, czy tak jest w rzeczywistości, możemy uruchomić to polecenie:
root@ubuntu1604:~# systemctl status mssql-server --no-pager
* mssql-server.service - Microsoft SQL Server Database Engine
Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-10-24 00:24:23 EDT; 3min 45s ago
Docs: https://docs.microsoft.com/en-us/sql/linux
Main PID: 19446 (sqlservr)
Tasks: 135
Memory: 548.5M
CPU: 12.499s
CGroup: /system.slice/mssql-server.service
|-19446 /opt/mssql/bin/sqlservr
`-19485 /opt/mssql/bin/sqlservr
Krok 4 (opcjonalnie):Zezwól na połączenia zdalne
Jeśli zamierzasz korzystać ze zdalnego połączenia z nowym serwerem SQL, konieczne będzie otwarcie portu serwera SQL:
Uwaga :Ponownie postępuj ostrożnie. Zapory ogniowe zapewniają bezpieczeństwo serwera, ograniczając do niego dostęp. O ile nie planujesz zdalnego dostępu do programu SQL Server, otwieranie tego portu nie jest konieczne.
Aby nasze interakcje z zaporą ogniową były zwięzłe, zainstaluj ufw, inaczej znany jako nieskomplikowana zapora ogniowa:
root@ubuntu1604:~# apt-get install -y ufw
Po zainstalowaniu ufw musi być włączony. Zobaczysz ostrzeżenie wskazujące, że połączenie SSH może zostać przerwane. Jeśli sesja SSH jest rozłączona, zaloguj się ponownie i kontynuuj:
root@ubuntu1604:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
firewall is active and enabled on system startup
Teraz, gdy ufw jest na miejscu i włączony, nadszedł czas, aby zezwolić na ruch do portu 1433:
root@ubuntu1604:~# ufw allow 1433
Rule added
Rule added (v6)
Krok 5:Zainstaluj i skonfiguruj narzędzia wiersza poleceń MSSQL Server
Po pierwsze, tak jak poprzednio, musimy dodać kilka nowych kluczy GPG dla repozytorium, które zawiera narzędzia wiersza poleceń MSSQL:
root@ubuntu1604:~# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Teraz możemy dodać repozytorium:
root@ubuntu1604:~# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list
Następnie zaktualizuj apt i zainstaluj narzędzia wiersza poleceń:
root@ubuntu1604:~# apt-get update -y
t@ubuntu1604:~# apt-get install -y mssql-tools unixodbc-dev
Podczas instalacji powinien pojawić się jeden lub dwa interaktywne monity o zaakceptowanie licencji, które wyglądają mniej więcej tak:
Ułatwmy wykonywanie sqlcmd w dowolnym miejscu na serwerze:
root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@ubuntu1604:~# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
root@ubuntu1604:~# source ~/.bashrc
Wreszcie nadszedł czas, aby sprawdzić, czy możemy połączyć się lokalnie z MSSQL Server:
root@ubuntu1604:~# sqlcmd -S localhost -U SA
Password:
1>
Rozpocznij już dziś!
Czy musisz skonfigurować alternatywny system baz danych, taki jak MSSQL w systemie Linux? Potrzebujesz pomocy w konfigurowaniu istniejącej bazy danych lub rozwiązywaniu problemów z pokrewną, która Cię frustrowała? Mamy jedne z najlepszych umysłów w branży pracujących dla Liquid Web i stoimy przez 24 godziny na dobę, 365 dni w roku, tylko czekając, aby to udowodnić! W dowolnym momencie możemy wkroczyć, aby zapewnić pomoc, której potrzebujesz, aby rozwiązać problemy.