Установка 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