sql >> Databasteknik >  >> RDS >> Database

Hur man installerar Microsoft SQL på Linux

I den här artikeln kommer vi att diskutera hur man installerar Microsoft SQL eller MSSQL på Linux. Microsoft SQL, i dagligt tal kallad MSSQL, är ett relationsdatabashanteringssystem skapat av Microsoft. Open-source MySQL och PostgreSQL är vanligtvis synonyma med Linux-distributioner, men att arbeta med MSSQL på Linux stöds också. MSSQL erbjuder vissa funktioner som dess motsvarigheter med öppen källkod inte har, och beroende på applikationskrav kan det vara rätt val för en RDBMS. I den här handledningen kommer vi att gå igenom hur man installerar MSSQL på CentOS 7 och Ubuntu 16.04.

Kontroll före flygning

  • Du måste verifiera att din server har minst 2 GB minne
  • Dessa instruktioner utförs på CentOS 7 respektive Ubuntu 16.04 LTS-servrar som rotanvändare

CentOS 7

Steg 1:Lägg till MSSQL 2019 Preview Repo

Först, som en bästa praxis, se till att alla paket är uppdaterade:

root@centos ~]# yum update -y

Därefter måste vi berätta för pakethanteraren yum var man ska leta efter mssql-serverpaketet genom att lägga till lämplig repo:

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

Steg 2:Installera SQL Server

Nu när yum är medveten om MSSQL-repo kan vi använda yum för att installera paketet:

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

Steg 3:Konfigurera MSSQL-server

Därefter måste vi konfigurera SQL med ett systemadministratörslösenord och bekräfta den utgåva vi vill använda. Denna handledning kommer att använda Developer-utgåvan, val 2, eftersom den är 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.

Efter det måste vi verifiera att mssql-tjänsten körs:

root@centos ~]# systemctl status mssql-server

Utdata ska se ut ungefär så här:

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

Steg 4 (valfritt):Tillåt fjärranslutningar

Om du vill att din SQL-server ska vara tillgänglig på distans, måste du öppna SQL Server-porten:

Obs :Fortsätt med försiktighet. Brandväggar är på plats för att hålla din server säker genom att begränsa åtkomsten till den. Om du inte planerar att få åtkomst till SQL Server på distans, är det onödigt att öppna denna port.

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

Efter att ha lagt till regeln måste vi ladda om våra brandväggsregler och verifiera att porten är öppen:

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

Steg 5:Lägg till Microsoft Red Hat-arkiv

Nu behöver vi ett sätt att interagera med vår SQL-server. Låt oss först lägga till en annan repo så att vi kan använda yum för att installera SQL Server-kommandoradsverktyg

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

Steg 6:Installera och konfigurera kommandoradsverktyg för MSSQL Server

Nu när yum är medveten om paketen vi vill installera måste vi installera dem. Det är viktigt att notera att under installationen av dessa paket kommer det att finnas ett par interaktiva uppmaningar om att acceptera licensvillkoren:

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

För att underlätta användningen kan vi lägga till sökvägen

/opt/mssql-tools/bin/ 

till PATH-variabeln på servern så att vi kan köra sql-kommandon från valfri plats på servern:

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

root@centos ~]# source ~/.bashrc

Det sista steget är att verifiera att vi kan göra en anslutning till SQL Server:

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

Ubuntu 18.04 LTS

Steg 1:Lägg till MSSQL Server Ubuntu 2019 förhandsgranskningsrepo

Låt oss först uppdatera serverpaketen:

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

När serverpaketen har uppdaterats måste vi lägga till GPG-nycklarna för arkivet vi vill lägga till. GPG-nycklar är ett sätt för Linux-användare att verifiera giltigheten av filer och bekräfta att de kommer från pålitliga källor:

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

Nu när GPG-nycklarna är på plats kan vi lägga till arkivet:

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

Förvaret vi just lade till kräver en HTTPS-anslutning. För att säkerställa att apt kan ansluta till repet måste vi vara säkra på att den kan ansluta via https:

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

Steg 2:Installera MSSQL Server

Nu när repet som innehåller MSSQL Server-paketen är tillgängligt är allt som återstår att se till att apt känner till det nya repet och installera MSSQL Server:

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

Steg 3:Konfigurera MSSQL-server

Konfigurationssteget är detsamma på både CentOS 7 och Ubuntu 16.04. Under konfigurationsprocessen kommer det att finnas interaktiva uppmaningar om att välja SQL Server-utgåvan, acceptera licensvillkor och ange ett SQL Admin-lösenord:

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 Server bör nu vara igång och aktiverad. För att verifiera att så är fallet kan vi köra det här kommandot:

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

Steg 4 (valfritt):Tillåt fjärranslutningar

Om du tänker använda en fjärranslutning till din nya SQL Server, kommer det att vara nödvändigt att öppna SQL Server-porten:

Obs :Fortsätt med försiktighet igen. Brandväggar är på plats för att hålla din server säker genom att begränsa åtkomsten till den. Om du inte planerar att få åtkomst till SQL Server på distans, är det onödigt att öppna denna port.

För att hålla våra brandväggsinteraktioner kortfattade, installera ufw, även känd som Uncomplicated Firewall:

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

När det har installerats måste ufw aktiveras. Du kommer att se en varning som indikerar att din SSH-anslutning kan vara avbruten. Om din SSH-session är frånkopplad, logga in igen och fortsätt:

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 när ufw är på plats och aktiverat är det dags att tillåta trafik till port 1433:

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

Steg 5:Installera och konfigurera kommandoradsverktyg för MSSQL Server

Först, som vi gjorde tidigare, måste vi lägga till några nya GPG-nycklar för repo som innehåller MSSQL-kommandoradsverktygen:

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

Nu kan vi lägga till arkivet:

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

Efter det, uppdatera apt och installera kommandoradsverktygen:

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

Det bör finnas en eller två interaktiva uppmaningar för att acceptera licenser under installationen som ser ut ungefär så här:

Låt oss göra det enkelt att köra sqlcmd var som helst på servern:

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

Slutligen är det dags att verifiera att vi kan ansluta till MSSQL Server lokalt:

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

Kom igång idag!

Behöver du konfigurera ett alternativt databassystem som MSSQL på Linux? Behöver du hjälp med att konfigurera en befintlig databas eller att felsöka en relaterad blev du frustrerad? Vi har några av de bästa hjärnorna i branschen som arbetar för Liquid Web och vi står vid 24 timmar om dygnet, 365 dagar om året och väntar bara på att bevisa det! Vi kan träda in när som helst för att ge den hjälp du behöver för att komma vidare med problemen.


  1. Ändra ett SQL Server Agent Job (T-SQL)

  2. Hur upptäcker man att transaktionen redan har påbörjats?

  3. PHP och Postgres:fångar fel?

  4. Använd binär COPY-tabell FROM med psycopg2