Установка SQL Server на Linux

Компания Майкрософт перенесла на платформу Линукс SQL сервер

Установка SQL Server на Linux

SQL Server vNext CTP 1.4 поддерживается на Red Hat Enterprise Linux, SUSE Linux Enterprise Server, и Ubuntu.

Поддерживаемые платформы:

  • Red Hat Enterprise Linux 7.3
  • SUSE Linux Enterprise Server v12 SP2
  • Ubuntu 16.04 and 16.10
  • Docker Engine 1.8+

Необходимые условия для работы MSSQL сервера
Должно быть не менее свободной 3.25GB оперативной памяти для нормальной SQL Server на Linux.

Заметка: SQL Server Engine тестировался на сегодняшний день с объемом оперативной памяти 1 TB .(31/03/2017)
Файловая система должна быть XFS или EXT4. Другие файловые системы доступные в Линукс , например такие как BTRFS, не поддерживаются.

Установка SQL Server на Red Hat linux

Для установки пакета mssql-server на RHEL, необходимо совершить несколько простых шагов :

1. Все нижеуказанные действия производятся от имени суперпользователя ( в режиме superuser )

sudo su

2. Необходимо добавить репозиторий Microsoft SQL Server Red Hat repository ,  для CentOs 8

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo

3. Необходимо выйти из режима superuser mode.

exit

4. Запускаем команду для установки SQL Server:

sudo yum install -y mssql-server

5. После успешной установки пакета необходимо запустить команду mssql-conf setup и следовать за инструкциями появляющимися на экране
Для главной учетной записи SA необходимо задать пароль (длина пароля составляет минимум 8 символов, включая буквы в верхнем и нижнем регистре, цифры,и другие символы

sudo /opt/mssql/bin/mssql-conf setup

6. После успешной конфигурации необходимо запустить сервис:

systemctl status mssql-server

7. Для разрешения удаленных соединений с сервером необходимо открыть порт доступа в firewall на RHEL. По умолчанию SQL Server использует порт TCP 1433. Iесли вы используете FirewallD , вы можете использовать следующие команды.

sudo firewall-cmd —zone=public —add-port=1433/tcp —permanent
sudo firewall-cmd —reload


небольшое отступление о применении утилиты firewall-cmd
Просмотр зон по умолчанию — обычно “public”:
firewall-cmd —get-active-zones

Перечень сервисов для зоны:
firewall-cmd —zone=public —list-all

Добавить доступ на определенный порт например 80 протокол tcp
firewall-cmd —permanent —zone=public —add-port=80/tcp

Или например UDP :
firewall-cmd —permanent —zone=public —add-port=123/udp

применить правила:
sudo firewall-cmd —reload

Рестарт правит без  опции –permanent .

systemctl restart firewalld.service

открыть доступ к сервису по названию:

sudo firewall-cmd —permanent —zone=public —add-service=http

удалить правило на время редактирования:

firewall-cmd —direct —remove-rule ipv4 filter OUTPUT 0 -p tcp -m tcp —dport=25 -j ACCEPT

удалить правило навсегда (добавляем —permanent):

firewall-cmd —permanent —direct —remove-rule ipv4 filter OUTPUT 0 -p tcp —syn -m state —state NEW —dport=25 -j ACCEPT

посмтреть действующие правила:

firewall-cmd —direct —get-all-rules

————

Обновление SQL Server

Для обновления пакета mssql-server в RHEL, используйте следующую комманду

sudo yum update mssql-server

Эта команда будет скачивать новый пакет и заменять бинарные файлы в папке  /opt/mssql/. Базы данных созданные пользователем не будут затрагиваться при выполнении обновлений.

Удаление SQL Server

Для удаления пакета mssql-server из операционной системы RHEL, выполните следующие действия:
1. Запустите команду удаления , которая удалит все пакеты и файлы из папки /opt/mssql/. Этакоманда не будет удалять базы данных созданные пользователем в папке /var/opt/mssql.
sudo yum remove mssql-server
2. Если вы хотите удалить базы данных созданные пользователем выполните следующую команду :

sudo rm -rf /var/opt/mssql/

ссылка на исходный текст статьи https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-red-hat

Установка дополнительных инструментов на RHEL

Пройдите еще несколько простых шагов для установки mssql-tools на Red Hat Enterprise Linux.

1. Выполняйте действия в режиме superuser mode.

sudo su

2. Добавьте репозиторий Microsoft Red Hat . (CentOs 8)

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo

 

3.Совершите выход из режима superuser mode.

exit

4.Если у вас имеются ранее установленные версии mssql-tools, удалите все пакеты unixODBC следующими командами.

sudo yum update
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel

5.Запустите команду для установки mssql-tools с пакетами unixODBC developer package.

sudo yum update
sudo yum install mssql-tools unixODBC-devel

6.Для обновления до последней версии mssql-tools запустите следующие команды:

sudo yum check-update
sudo yum update mssql-tools

7.Опционально: добавьте /opt/mssql-tools/bin/ в переменную PATH в bash shell.

Чтобы сделать доступным sqlcmd/bcp из терминала с помощью bash shell для входа в сессию измените переменную PATH в файле ~/.bash_profile следующей командой:

echo ‘export PATH=»$PATH:/opt/mssql-tools/bin»‘ >> ~/.bash_profile

Чтобы сделать доступным вход в sqlcmd/bcp в интерактивном режиме bash shell interactive/non-login без входа в сессию, измените переменную PATH в файле ~/.bashrc следующей командой:

echo ‘export PATH=»$PATH:/opt/mssql-tools/bin»‘ >> ~/.bashrc
source ~/.bashrc

ссылка на оригинальную статьи https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#RHEL

_________________________________

Connect to DB :

sqlcmd -S localhost -U SA -P »password»

Create a new database

The following steps create a new database named TestDB.

From the sqlcmd command prompt, paste the following Transact-SQL command to create a test database:
SQL

CREATE DATABASE TestDB

On the next line, write a query to return the name of all of the databases on your server:
SQL

SELECT Name from sys.Databases

The previous two commands were not executed immediately. You must type GO on a new line to execute the previous commands:
SQL

GO

Insert data

Next create a new table, Inventory, and insert two new rows.

From the sqlcmd command prompt, switch context to the new TestDB database:
SQL

USE TestDB

Create new table named Inventory:
SQL

CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)

Insert data into the new table:
SQL

INSERT INTO Inventory VALUES (1, ‘banana’, 150); INSERT INTO Inventory VALUES (2, ‘orange’, 154);

Type GO to execute the previous commands:
SQL

GO

Select data

Now, run a query to return data from the Inventory table.

From the sqlcmd command prompt, enter a query that returns rows from the Inventory table where the quantity is greater than 152:
SQL

SELECT * FROM Inventory WHERE quantity > 152;

Execute the command:

SQL

GO

Exit the sqlcmd command prompt

To end your sqlcmd session, type QUIT:

SQL

QUIT