sql >> Database >  >> RDS >> Database

Hoe Microsoft SQL op Linux te installeren

In dit artikel bespreken we hoe u Microsoft SQL of MSSQL op Linux installeert. Microsoft SQL, in de volksmond MSSQL genoemd, is een relationeel databasebeheersysteem gemaakt door Microsoft. Open-source MySQL en PostgreSQL zijn doorgaans synoniem met Linux-distributies, maar het werken met MSSQL op Linux wordt ook ondersteund. MSSQL biedt enkele functies die zijn open-source tegenhangers niet hebben, en afhankelijk van de toepassingsvereisten kan het de juiste keuze zijn voor een RDBMS. In deze zelfstudie laten we zien hoe u MSSQL installeert op CentOS 7 en Ubuntu 16.04.

Pre-flight check

  • U moet controleren of uw server ten minste 2 GB geheugen heeft
  • Deze instructies worden uitgevoerd op respectievelijk CentOS 7- en Ubuntu 16.04 LTS-servers als rootgebruiker

CentOS 7

Stap 1:MSSQL 2019 Preview Repo toevoegen

Zorg er eerst als best practice voor dat alle pakketten up-to-date zijn:

root@centos ~]# yum update -y

Vervolgens moeten we de pakketbeheerder yum vertellen waar hij het mssql-server-pakket moet zoeken door de juiste repo toe te voegen:

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

Stap 2:SQL Server installeren

Nu yum op de hoogte is van de MSSQL-repo, kunnen we yum gebruiken om het pakket te installeren:

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

Stap 3:MSSQL-server configureren

Vervolgens moeten we SQL configureren met een systeembeheerderswachtwoord en de editie bevestigen die we willen gebruiken. Deze tutorial gebruikt de Developer-editie, keuze 2, omdat deze gratis is:

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.

Daarna moeten we controleren of de mssql-service actief is:

root@centos ~]# systemctl status mssql-server

De uitvoer zou er ongeveer zo uit moeten zien:

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

Stap 4 (optioneel):externe verbindingen toestaan

Als u wilt dat uw SQL-server op afstand toegankelijk is, moet u de SQL Server-poort openen:

Opmerking :Ga voorzichtig verder. Firewalls zijn aanwezig om uw server veilig te houden door de toegang ertoe te beperken. Tenzij u van plan bent om op afstand toegang te krijgen tot SQL Server, is het niet nodig om deze poort te openen.

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

Nadat we de regel hebben toegevoegd, moeten we onze firewallregels opnieuw laden en controleren of de poort open is:

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

Stap 5:Microsoft Red Hat-repository toevoegen

Nu hebben we een manier nodig om te communiceren met onze SQL-server. Laten we eerst nog een opslagplaats toevoegen zodat we yum kunnen gebruiken om SQL Server-opdrachtregelprogramma's te installeren

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

Stap 6:MSSQL Server-opdrachtregelprogramma's installeren en instellen

Nu yum op de hoogte is van de pakketten die we willen installeren, moeten we ze installeren. Het is belangrijk op te merken dat er tijdens de installatie van deze pakketten een aantal interactieve prompts zullen zijn om de licentievoorwaarden te accepteren:

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

Voor het gebruiksgemak kunnen we het pad

. toevoegen
/opt/mssql-tools/bin/ 

naar de PATH-variabele op de server zodat we sql-commando's kunnen uitvoeren vanaf elke locatie op de server:

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

root@centos ~]# source ~/.bashrc

De laatste stap is om te controleren of we verbinding kunnen maken met SQL Server:

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

Ubuntu 18.04 LTS

Stap 1:MSSQL Server Ubuntu 2019 preview repo toevoegen

Laten we eerst de serverpakketten bijwerken:

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

Zodra de serverpakketten zijn bijgewerkt, moeten we de GPG-sleutels toevoegen voor de repository die we willen toevoegen. GPG-sleutels zijn een manier voor Linux-gebruikers om de geldigheid van bestanden te verifiëren en te bevestigen dat ze afkomstig zijn van vertrouwde bronnen:

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

Nu de GPG-sleutels aanwezig zijn, kunnen we de repository toevoegen:

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

De repository die we zojuist hebben toegevoegd, vereist een HTTPS-verbinding. Om ervoor te zorgen dat apt verbinding kan maken met de opslagplaats, moeten we er zeker van zijn dat het verbinding kan maken via https:

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

Stap 2:MSSQL-server installeren

Nu de repo met de MSSQL Server-pakketten beschikbaar is, hoeft u alleen nog maar ervoor te zorgen dat apt op de hoogte is van de nieuwe repo en MSSQL Server te installeren:

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

Stap 3:MSSQL-server configureren

De configuratiestap is hetzelfde op zowel CentOS 7 als Ubuntu 16.04. Tijdens het configuratieproces zullen er interactieve prompts zijn om de SQL Server-editie te kiezen, de licentievoorwaarden te accepteren en een SQL-beheerderswachtwoord in te voeren:

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 zou nu actief en ingeschakeld moeten zijn. Om te controleren of dit inderdaad het geval is, kunnen we dit commando uitvoeren:

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

Stap 4 (optioneel):externe verbindingen toestaan

Als u van plan bent een externe verbinding met uw nieuwe SQL Server te gebruiken, moet u de SQL Server-poort openen:

Opmerking :Ga opnieuw voorzichtig te werk. Firewalls zijn aanwezig om uw server veilig te houden door de toegang ertoe te beperken. Tenzij u van plan bent om op afstand toegang te krijgen tot SQL Server, is het niet nodig om deze poort te openen.

Om onze firewall-interacties beknopt te houden, installeert u ufw, ook wel bekend als Uncomplicated Firewall:

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

Na installatie moet ufw worden ingeschakeld. U krijgt een waarschuwing te zien die aangeeft dat uw SSH-verbinding mogelijk is onderbroken. Als uw SSH-sessie is verbroken, logt u opnieuw in en gaat u verder:

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 ufw aanwezig en ingeschakeld is, is het tijd om verkeer door te laten naar poort 1433:

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

Stap 5:MSSQL Server-opdrachtregelprogramma's installeren en instellen

Eerst moeten we, zoals we eerder deden, enkele nieuwe GPG-sleutels toevoegen voor de repo die de MSSQL-opdrachtregelprogramma's bevat:

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

Nu kunnen we de repository toevoegen:

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

Werk daarna apt bij en installeer de opdrachtregelprogramma's:

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

Er zouden een of twee interactieve prompts moeten zijn om licenties te accepteren tijdens de installatie die er ongeveer zo uitzien:

Laten we het gemakkelijk maken om sqlcmd overal op de server uit te voeren:

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

Eindelijk is het tijd om te controleren of we lokaal verbinding kunnen maken met MSSQL Server:

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

Ga vandaag nog aan de slag!

Moet u een alternatief databasesysteem opzetten zoals MSSQL op Linux? Hulp nodig bij het configureren van een bestaande database of het oplossen van problemen met een gerelateerd probleem dat u gefrustreerd heeft? We hebben enkele van de knapste koppen in de branche die voor Liquid Web werken en we staan ​​24 uur per dag, 365 dagen per jaar klaar om het te bewijzen! We kunnen op elk moment ingrijpen om de hulp te bieden die u nodig hebt om de problemen op te lossen.


  1. Hoe MySQL-replicatie in te stellen in RHEL, Rocky en AlmaLinux

  2. Een tabel neerzetten in SQL

  3. Reset het root-wachtwoord van de MySQL-server

  4. Kunnen we parameters doorgeven aan een weergave in SQL?