В тази статия ще обсъдим как да инсталирате Microsoft SQL или MSSQL на Linux. Microsoft SQL, наричан разговорно MSSQL, е система за управление на релационни бази данни, създадена от Microsoft. MySQL и PostgreSQL с отворен код обикновено са синоними на Linux дистрибуции, но работата с MSSQL на Linux също се поддържа. MSSQL предлага някои функции, които неговите колеги с отворен код не, и в зависимост от изискванията на приложението, може да е правилният избор за RDBMS. В този урок ще разгледаме как да инсталирате MSSQL на CentOS 7 и Ubuntu 16.04.
Проверка преди полета
- Ще трябва да потвърдите, че сървърът ви има поне 2 GB памет
- Тези инструкции се изпълняват съответно на сървъри CentOS 7 и Ubuntu 16.04 LTS като root потребител
CentOS 7
Стъпка 1:Добавете MSSQL 2019 Preview Repo
Първо, като най-добра практика, уверете се, че всички пакети са актуални:
root@centos ~]# yum update -y
След това трябва да кажем на мениджъра на пакети yum къде да търси пакета mssql-server, като добавим подходящото репо:
root@centos ~]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo
Стъпка 2:Инсталирайте SQL Server
Сега, когато yum е наясно с MSSQL репо, можем да използваме yum, за да инсталираме пакета:
root@centos ~]# yum install -y mssql-server
Стъпка 3:Конфигуриране на MSSQL сървър
След това трябва да конфигурираме SQL с парола на системен администратор и да потвърдим изданието, което искаме да използваме. Този урок ще използва изданието за разработчици, избор 2, тъй като е безплатен:
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.
След това трябва да проверим дали услугата mssql работи:
root@centos ~]# systemctl status mssql-server
Резултатът трябва да изглежда по следния начин:
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
Стъпка 4 (по избор):Разрешете отдалечени връзки
Ако искате вашият SQL сървър да бъде достъпен от разстояние, ще трябва да отворите порта на SQL Server:
Забележка :Продължете с повишено внимание. Защитните стени са на място, за да поддържат вашия сървър в безопасност, като ограничават достъпа до него. Освен ако не планирате да осъществявате отдалечен достъп до SQL Server, не е необходимо да отваряте този порт.
root@centos ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent
След като добавим правилото, трябва да презаредим нашите правила за защитната стена и да проверим дали портът е отворен:
[root@centos ~]# firewall-cmd --reload
success
root@centos ~]# firewall-cmd --list-ports
1433/tcp
Стъпка 5:Добавете хранилище на Microsoft Red Hat
Сега имаме нужда от начин за взаимодействие с нашия SQL сървър. Първо, нека добавим още едно репо, за да можем да използваме yum за инсталиране на инструменти от командния ред на SQL Server
root@centos ~]# curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
Стъпка 6:Инсталирайте и настройте инструменти от командния ред на MSSQL Server
Сега, когато yum е наясно с пакетите, които искаме да инсталираме, трябва да ги инсталираме. Важно е да се отбележи, че по време на инсталирането на тези пакети ще има няколко интерактивни подкана за приемане на лицензионните условия:
root@centos ~]# yum install -y mssql-tools unixODBC-devel
За по-лесно използване можем да добавим пътя
/opt/mssql-tools/bin/
към променливата PATH на сървъра, за да можем да изпълняваме sql команди от всяко място на сървъра:
root@centos ~]# echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
root@centos ~]# source ~/.bashrc
Последната стъпка е да проверим дали можем да направим връзка със SQL Server:
root@centos ~]# sqlcmd -S localhost -U SA
Password:
1>
Ubuntu 18.04 LTS
Стъпка 1:Добавете репозитория за визуализация на MSSQL Server Ubuntu 2019
Първо, нека актуализираме сървърните пакети:
root@ubuntu1604:~# apt-get update -y
След като сървърните пакети бъдат актуализирани, трябва да добавим GPG ключовете за хранилището, което искаме да добавим. GPG ключовете са начин потребителите на Linux да проверят валидността на файловете и да потвърдят, че идват от надеждни източници:
t@ubuntu1604:~# wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Сега, когато GPG ключовете са на мястото си, можем да добавим хранилището:
root@ubuntu1604:~# add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-preview.list)"
Хранилището, което току-що добавихме, изисква HTTPS връзка. За да гарантираме, че apt може да се свърже с репо, трябва да сме сигурни, че може да се свърже през https:
root@ubuntu1604:~# apt-get install -y apt-transport-https
Стъпка 2:Инсталирайте MSSQL сървър
Сега, когато репото, съдържащо пакетите на MSSQL Server е налично, остава само да се уверите, че apt знае за новото репо и да инсталира MSSQL Server:
apt-get update -y
apt-get install -y mssql-server
Стъпка 3:Конфигуриране на MSSQL сървър
Стъпката за конфигуриране е една и съща както в CentOS 7, така и в Ubuntu 16.04. По време на процеса на конфигуриране ще има интерактивни подкани за избор на изданието на SQL Server, приемане на лицензионните условия и въвеждане на парола за администратор на 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 вече трябва да работи и да е активиран. За да проверим дали това всъщност е така, можем да изпълним тази команда:
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
Стъпка 4 (по избор):Разрешете отдалечени връзки
Ако възнамерявате да използвате отдалечена връзка с вашия нов SQL Server, ще е необходимо да отворите порта на SQL Server:
Забележка :Отново продължете с повишено внимание. Защитните стени са на място, за да поддържат вашия сървър в безопасност, като ограничават достъпа до него. Освен ако не планирате да осъществявате отдалечен достъп до SQL Server, не е необходимо да отваряте този порт.
За да поддържате взаимодействията ни със защитната стена кратки, инсталирайте ufw, известен още като Неусложнена защитна стена:
root@ubuntu1604:~# apt-get install -y ufw
Веднъж инсталиран, ufw трябва да бъде активиран. Ще видите предупреждение, което показва, че вашата SSH връзка може да бъде прекъсната. Ако вашата SSH сесия е прекъсната, влезте отново и продължете:
root@ubuntu1604:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
firewall is active and enabled on system startup
Сега, когато ufw е на място и е активиран, е време да разрешите трафика през порт 1433:
root@ubuntu1604:~# ufw allow 1433
Rule added
Rule added (v6)
Стъпка 5:Инсталирайте и настройте инструменти от командния ред на MSSQL Server
Първо, както направихме преди, трябва да добавим някои нови GPG ключове за репо, което съдържа инструментите на командния ред MSSQL:
root@ubuntu1604:~# curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
Сега можем да добавим хранилището:
root@ubuntu1604:~# curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | tee /etc/apt/sources.list.d/msprod.list
След това актуализирайте apt и инсталирайте инструментите на командния ред:
root@ubuntu1604:~# apt-get update -y
t@ubuntu1604:~# apt-get install -y mssql-tools unixodbc-dev
Трябва да има една или две интерактивни подкани за приемане на лицензи по време на инсталацията, които изглеждат така:
Нека улесним изпълнението на sqlcmd навсякъде на сървъра:
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
И накрая, време е да проверим дали можем да се свържем с MSSQL сървър локално:
root@ubuntu1604:~# sqlcmd -S localhost -U SA
Password:
1>
Започнете днес!
Трябва ли да настроите алтернативна система за бази данни като MSSQL на Linux? Нуждаете се от помощ при конфигуриране на съществуваща база данни или отстраняване на неизправности в свързано, което ви разочарова? Имаме едни от най-добрите умове в индустрията, работещи за Liquid Web, и ние сме на линия 24 часа в денонощието, 365 дни в годината, просто чакаме да го докажем! Можем да се намесим по всяко време, за да предоставим необходимата ви помощ, за да придвижите проблемите.