sql >> Database teknologi >  >> RDS >> Database

Sådan installeres Microsoft SQL på Linux

I denne artikel vil vi diskutere, hvordan du installerer Microsoft SQL eller MSSQL på Linux. Microsoft SQL, i daglig tale omtalt som MSSQL, er et relationelt databasestyringssystem skabt af Microsoft. Open-source MySQL og PostgreSQL er typisk synonyme med Linux-distributioner, men arbejde med MSSQL på Linux understøttes også. MSSQL tilbyder nogle funktioner, som dets open source-modstykker ikke gør, og afhængigt af applikationskravene kan det være det rigtige valg for en RDBMS. I denne tutorial skal vi gennemgå, hvordan man installerer MSSQL på CentOS 7 og Ubuntu 16.04.

Tjek før flyvning

  • Du skal bekræfte, at din server har mindst 2 GB hukommelse
  • Disse instruktioner udføres på henholdsvis CentOS 7 og Ubuntu 16.04 LTS-servere som root-bruger

CentOS 7

Trin 1:Tilføj MSSQL 2019 Preview Repo

Først, som en bedste praksis, skal du sikre dig, at alle pakker er opdaterede:

root@centos ~]# yum update -y

Dernæst skal vi fortælle pakkeadministratoren yum, hvor de skal lede efter mssql-serverpakken ved at tilføje den relevante repo:

root@centos ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo

Trin 2:Installer SQL Server

Nu hvor yum er opmærksom på MSSQL-repoen, kan vi bruge yum til at installere pakken:

root@centos ~]# yum install -y mssql-server

Trin 3:Konfigurer MSSQL-server

Dernæst skal vi konfigurere SQL med en systemadministratoradgangskode og bekræfte den udgave, vi vil bruge. Denne vejledning vil bruge Developer-udgaven, valg 2, da den er gratis:

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.

Derefter skal vi bekræfte, at mssql-tjenesten kører:

root@centos ~]# systemctl status mssql-server

Outputtet skulle se nogenlunde sådan ud:

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

Trin 4 (valgfrit):Tillad fjernforbindelser

Hvis du ønsker, at din SQL-server skal være tilgængelig eksternt, skal du åbne SQL Server-porten:

Bemærk :Fortsæt med forsigtighed. Firewalls er på plads for at holde din server sikker ved at begrænse adgangen til den. Medmindre du planlægger at få fjernadgang til SQL Server, er det unødvendigt at åbne denne port.

root@centos ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent

Efter at have tilføjet reglen, skal vi genindlæse vores firewallregler og bekræfte, at porten er åben:

[root@centos ~]# firewall-cmd --reload
success
root@centos ~]# firewall-cmd --list-ports
1433/tcp

Trin 5:Tilføj Microsoft Red Hat-lager

Nu har vi brug for en måde at interagere med vores SQL-server på. Lad os først tilføje en anden repo, så vi kan bruge yum til at installere SQL Server-kommandolinjeværktøjer

root@centos ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

Trin 6:Installer og konfigurer MSSQL Server-kommandolinjeværktøjer

Nu hvor yum er klar over de pakker, vi vil installere, skal vi installere dem. Det er vigtigt at bemærke, at der under installationen af ​​disse pakker vil være et par interaktive prompter for at acceptere licensbetingelserne:

root@centos ~]# yum install -y mssql-tools unixODBC-devel

For at lette brugen kan vi tilføje stien

/opt/mssql-tools/bin/ 

til PATH-variablen på serveren, så vi kan udføre sql-kommandoer fra et hvilket som helst sted på serveren:

root@centos ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

root@centos ~]# source ~/.bashrc

Det sidste trin er at bekræfte, at vi kan oprette forbindelse til SQL Server:

root@centos ~]# sqlcmd -S localhost -U SA
Password:
1>

Ubuntu 18.04 LTS

Trin 1:Tilføj MSSQL Server Ubuntu 2019 preview repo

Lad os først opdatere serverpakkerne:

root@ubuntu1604:~# apt-get update -y

Når serverpakkerne er opdateret, skal vi tilføje GPG-nøglerne til det lager, vi vil tilføje. GPG-nøgler er en måde for Linux-brugere at bekræfte gyldigheden af ​​filer og bekræfte, at de kommer fra pålidelige kilder:

t@ubuntu1604:~# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Nu hvor GPG-nøglerne er på plads, kan vi tilføje depotet:

root@ubuntu1604:~# add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-preview.list)"

Det lager, vi lige har tilføjet, kræver en HTTPS-forbindelse. For at sikre, at apt kan oprette forbindelse til repoen, skal vi være sikre på, at den kan oprette forbindelse via https:

root@ubuntu1604:~# apt-get install -y apt-transport-https

Trin 2:Installer MSSQL Server

Nu hvor repoen, der indeholder MSSQL Server-pakkerne, er tilgængelig, er der kun tilbage at sørge for, at apt kender til den nye repo og installere MSSQL Server:

apt-get update -y
apt-get install -y mssql-server

Trin 3:Konfigurer MSSQL-server

Konfigurationstrinnet er det samme på både CentOS 7 og Ubuntu 16.04. Under konfigurationsprocessen vil der være interaktive prompter om at vælge SQL Server-udgaven, acceptere licensvilkår og indtaste en SQL Admin-adgangskode:

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.

MSSQL-serveren skulle nu køre og være aktiveret. For at verificere, at dette faktisk er tilfældet, kan vi køre denne kommando:

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

Trin 4 (valgfrit):Tillad fjernforbindelser

Hvis du har til hensigt at bruge en fjernforbindelse til din nye SQL Server, vil det være nødvendigt at åbne SQL Server-porten:

Bemærk :Fortsæt igen med forsigtighed. Firewalls er på plads for at holde din server sikker ved at begrænse adgangen til den. Medmindre du planlægger at få fjernadgang til SQL Server, er det unødvendigt at åbne denne port.

For at holde vores firewall-interaktioner kortfattet skal du installere ufw, også kendt som Uncomplicated Firewall:

root@ubuntu1604:~# apt-get install -y ufw

Når det er installeret, skal ufw være aktiveret. Du vil se en advarsel, der indikerer, at din SSH-forbindelse kan blive afbrudt. Hvis din SSH-session er afbrudt, skal du logge ind igen og fortsætte:

root@ubuntu1604:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
firewall is active and enabled on system startup

Nu hvor ufw er på plads og aktiveret, er det tid til at tillade trafik igennem til port 1433:

root@ubuntu1604:~# ufw allow 1433
Rule added
Rule added (v6)

Trin 5:Installer og konfigurer MSSQL Server-kommandolinjeværktøjer

Først, som vi gjorde før, skal vi tilføje nogle nye GPG-nøgler til repoen, der indeholder MSSQL-kommandolinjeværktøjerne:

root@ubuntu1604:~# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

Nu kan vi tilføje depotet:

root@ubuntu1604:~# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list

Derefter skal du opdatere apt og installere kommandolinjeværktøjerne:

root@ubuntu1604:~# apt-get update -y
t@ubuntu1604:~# apt-get install -y mssql-tools unixodbc-dev

Der bør være en eller to interaktive prompter for at acceptere licenser under installationen, der ser sådan ud:

Lad os gøre det nemt at udføre sqlcmd hvor som helst på serveren:

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

Endelig er det tid til at bekræfte, at vi kan oprette forbindelse til MSSQL Server lokalt:

root@ubuntu1604:~# sqlcmd -S localhost -U SA
Password:
1>

Kom godt i gang i dag!

Har du brug for at opsætte et alternativt databasesystem som MSSQL på Linux? Har du brug for hjælp til at konfigurere en eksisterende database eller fejlfinde en relateret, blev du frustreret? Vi har nogle af de bedste hjerner i branchen, der arbejder for Liquid Web, og vi står klar 24 timer i døgnet, 365 dage om året og venter bare på at bevise det! Vi kan træde til på et hvilket som helst tidspunkt for at give den hjælp, du har brug for, for at flytte problemerne videre.


  1. Kan en INNER JOIN tilbyde bedre ydeevne end EKSISTERER

  2. Hvordan returnerer jeg flere resultatsæt med SqlCommand?

  3. Den korrekte måde at implementere en unik begrænsning, der tillader flere NULL-værdier i SQL Server

  4. Cloud Vendor Deep-Dive:PostgreSQL på AWS Aurora