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

Come installare Microsoft SQL su Linux

In questo articolo, discuteremo come installare Microsoft SQL o MSSQL su Linux. Microsoft SQL, colloquialmente denominato MSSQL, è un sistema di gestione di database relazionali creato da Microsoft. MySQL open source e PostgreSQL sono in genere sinonimi di distribuzioni Linux, ma è supportato anche il lavoro con MSSQL su Linux. MSSQL offre alcune funzionalità che le sue controparti open source non offrono e, a seconda dei requisiti dell'applicazione, potrebbe essere la scelta giusta per un RDBMS. In questo tutorial, illustreremo come installare MSSQL su CentOS 7 e Ubuntu 16.04.

Controllo pre-volo

  • Dovrai verificare che il tuo server abbia almeno 2 GB di memoria
  • Queste istruzioni vengono eseguite rispettivamente sui server CentOS 7 e Ubuntu 16.04 LTS come utente root

CentOS 7

Passaggio 1:aggiungi MSSQL 2019 Preview Repo

Innanzitutto, come best practice, assicurati che tutti i pacchetti siano aggiornati:

root@centos ~]# yum update -y

Successivamente, dobbiamo dire al gestore di pacchetti yum dove cercare il pacchetto mssql-server aggiungendo il repository appropriato:

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

Passaggio 2:installa SQL Server

Ora che yum è a conoscenza del repository MSSQL, possiamo usare yum per installare il pacchetto:

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

Fase 3:Configura MSSQL Server

Successivamente, dobbiamo configurare SQL con una password di amministratore di sistema e confermare l'edizione che vogliamo utilizzare. Questo tutorial utilizzerà l'edizione per sviluppatori, scelta 2, poiché è gratuita:

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.

Dopodiché, dobbiamo verificare che il servizio mssql sia in esecuzione:

root@centos ~]# systemctl status mssql-server

L'output dovrebbe essere simile a questo:

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

Passaggio 4 (facoltativo):consenti connessioni remote

Se vuoi che il tuo server SQL sia accessibile in remoto, dovrai aprire la porta di SQL Server:

Nota :Procedi con cautela. I firewall sono in atto per proteggere il tuo server limitando l'accesso ad esso. A meno che non si preveda di accedere a SQL Server in remoto, non è necessario aprire questa porta.

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

Dopo aver aggiunto la regola, dobbiamo ricaricare le nostre regole del firewall e verificare che la porta sia aperta:

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

Passaggio 5:aggiungi il repository Microsoft Red Hat

Ora, abbiamo bisogno di un modo per interagire con il nostro server SQL. Innanzitutto, aggiungiamo un altro repository in modo da poter utilizzare yum per installare gli strumenti della riga di comando di SQL Server

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

Passaggio 6:installa e configura gli strumenti da riga di comando di MSSQL Server

Ora che yum è a conoscenza dei pacchetti che vogliamo installare, dobbiamo installarli. È importante notare che durante l'installazione di questi pacchetti ci saranno un paio di richieste interattive per accettare i termini della licenza:

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

Per facilità d'uso possiamo aggiungere il percorso

/opt/mssql-tools/bin/ 

alla variabile PATH sul server in modo da poter eseguire comandi sql da qualsiasi posizione sul server:

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

root@centos ~]# source ~/.bashrc

Il passaggio finale è verificare che possiamo stabilire una connessione a SQL Server:

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

Ubuntu 18.04 LTS

Passaggio 1:aggiungi il repository di anteprima di MSSQL Server Ubuntu 2019

Innanzitutto, aggiorniamo i pacchetti del server:

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

Una volta aggiornati i pacchetti del server, dobbiamo aggiungere le chiavi GPG per il repository che vogliamo aggiungere. Le chiavi GPG sono un modo per gli utenti Linux di verificare la validità dei file e confermare che provengono da fonti attendibili:

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

Ora che le chiavi GPG sono a posto, possiamo aggiungere il repository:

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

Il repository che abbiamo appena aggiunto richiede una connessione HTTPS. Per garantire che apt possa connettersi al repository, dobbiamo essere certi che possa connettersi tramite https:

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

Passaggio 2:installa MSSQL Server

Ora che il repository contenente i pacchetti di MSSQL Server è disponibile, tutto ciò che resta da fare è assicurarsi che apt sia a conoscenza del nuovo repository e installare MSSQL Server:

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

Fase 3:Configura MSSQL Server

Il passaggio di configurazione è lo stesso sia su CentOS 7 che su Ubuntu 16.04. Durante il processo di configurazione, verranno visualizzate richieste interattive per selezionare l'edizione di SQL Server, accettare le condizioni di licenza e immettere una password di amministratore 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.

MSSQL Server ora dovrebbe essere in esecuzione e abilitato. Per verificare che sia effettivamente così, possiamo eseguire questo comando:

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

Passaggio 4 (facoltativo):consenti connessioni remote

Se intendi utilizzare una connessione remota al tuo nuovo SQL Server, sarà necessario aprire la porta di SQL Server:

Nota :Procedi ancora con cautela. I firewall sono in atto per proteggere il tuo server limitando l'accesso ad esso. A meno che non si preveda di accedere a SQL Server in remoto, non è necessario aprire questa porta.

Per mantenere succinte le nostre interazioni con il firewall, installa ufw, altrimenti noto come Uncomplicated Firewall:

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

Una volta installato, ufw deve essere abilitato. Verrà visualizzato un avviso che indica che la connessione SSH potrebbe essere interrotta. Se la tua sessione SSH è disconnessa, accedi nuovamente e continua:

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

Ora che ufw è attivo e abilitato, è il momento di consentire il traffico attraverso la porta 1433:

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

Passaggio 5:installa e configura gli strumenti della riga di comando di MSSQL Server

Innanzitutto, come abbiamo fatto prima, dobbiamo aggiungere alcune nuove chiavi GPG per il repository che contiene gli strumenti della riga di comando MSSQL:

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

Ora possiamo aggiungere il repository:

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

Successivamente, aggiorna apt e installa gli strumenti da riga di comando:

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

Dovrebbero esserci uno o due prompt interattivi per accettare le licenze durante l'installazione che assomigliano a questo:

Semplifichiamo l'esecuzione di sqlcmd ovunque sul server:

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

Infine, è il momento di verificare che possiamo connetterci a MSSQL Server localmente:

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

Inizia oggi stesso!

Hai bisogno di configurare un sistema di database alternativo come MSSQL su Linux? Hai bisogno di assistenza nella configurazione di un database esistente o nella risoluzione dei problemi di un relativo ti ha frustrato? Abbiamo alcune delle migliori menti del settore che lavorano per Liquid Web e siamo in piedi 24 ore al giorno, 365 giorni all'anno, aspettando solo di dimostrarlo! Possiamo intervenire in qualsiasi momento per fornire l'assistenza necessaria per spostare i problemi.