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.