MSSQL: различия между версиями

Материал из ALT Linux Wiki
мНет описания правки
м (+{{epm}})
 
(не показано 29 промежуточных версий 4 участников)
Строка 1: Строка 1:
 
{{epm|mssql-server mssql-tools}}
=== Установка Microsoft SQL server 2017 на ALT Linux ===
<!--
= Установка Microsoft SQL server 2017 на ALT Linux =


[https://www.microsoft.com/ru-ru/sql-server/sql-server-2017 Здесь] можно скачать rpm-пакет наподобие mssql-server-14.0.800.90-2.x86_64.rpm, пригодный для тестирования в тестовый период.
[https://www.microsoft.com/ru-ru/sql-server/sql-server-2017 Здесь] можно скачать rpm-пакет наподобие mssql-server-14.0.800.90-2.x86_64.rpm, пригодный для тестирования в тестовый период.


Напрямую для установки он не пригоден, потому что пакет имеет зависимости от другой системы.
Просто установить его невозможно, потому что пакет имеет зависимости от другой системы. Обратите внимание, что лицензия запрещает распространение перепакованного пакета.


С помощью
С помощью
  epm install --repack mssql-server-14.0.800.90-2.x86_64.rpm
  epm install --repack mssql-server-14.0.800.90-2.x86_64.rpm
можно установить пакет: он будет перепакован в rpm для целевой системы и установлен.
можно установить пакет: он будет перепакован в rpm для целевой системы и установлен.


После установки пакета выполните для настройки сервера
После установки пакета выполните для настройки сервера
  # /opt/mssql/bin/mssql-conf setup
  # /opt/mssql/bin/mssql-conf setup
-->
<!--
<!--
В каталоге /opt/mssql/lib/mssql-conf есть вспомогательные скрипты.
В каталоге /opt/mssql/lib/mssql-conf есть вспомогательные скрипты.
Строка 22: Строка 23:
  # /opt/mssql/lib/mssql-conf/invokesqlservr.sh
  # /opt/mssql/lib/mssql-conf/invokesqlservr.sh
-->
-->
= Установка MS SQL с помощью EPM =
# epm play mssql-server
# epm play mssql-tools
= Установка сервера MSSQL на Альт Сервер 8 =
1. Скачайте демо-версию с https://packages.microsoft.com/rhel/7/mssql-server-2019/ (пакет {{pkg|mssql-server-15.0.2000.5-5.x86_64.rpm}}; может быть более новый)
2. Установите необходимые зависимости:
apt-get install eepm
3. Пересоберите под Альт:
epm repack mssql-server-15.0.2000.5-5.x86_64.rpm
4. Установите:
epm install mssql-server-15.0.2000.5-alt1.repacked.with.epm.6.x86_64.rpm
5. Создайте пользователя:
useradd mssql
6. Создайте рабочий каталог для сервера:
mkdir -p /var/opt/mssql
chown mssql:mssql /var/opt/mssql
7. Пропишите автоматический запуск службы:
systemctl enable mssql-server
8. Пройдите мастер первоначального конфигурирования:
/opt/mssql/bin/mssql-conf setup
SQL Server будет запущен.
9. Проверьте подключение:
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'sp_databases'
Можно делать это с другой машины и из другой программы, например, из Management Studio.
Если SQL Server отвергает все попытки подключения с ошибкой "Error code 0x2746":
apt-get install libssl10
systemctl stop mssql-server
systemctl edit mssql-server
В открывшемся редакторе ввести это и сохранить:
[Service]
Environment="LD_LIBRARY_PATH=/opt/mssql/lib"
Создать ссылки на библиотеки, которые будет использовать SQL Server, и запустить его:
ln -s /lib64/libssl.so.1.0.2r /opt/mssql/lib/libssl.so
ln -s /lib64/libcrypto.so.1.0.2r /opt/mssql/lib/libcrypto.so
systemctl start mssql-server
= Установка полнотекстового поиска =
После установки основного пакета MS SQL, но до п. 8 (настройки сервера) установите аналогичным образом пакет msqsql-server-fts:
1. Скачайте пакет с https://packages.microsoft.com/sles/12/mssql-server-preview/ {{pkg|mssql-server-fts-15.0.1600.8-1.x86_64.rpm}}
2. Пересоберите под Альт:
epm repack mssql-server-fts-15.0.1600.8-1.x86_64.rpm
3. Установите:
epm install mssql-server-fts-15.0.1600.8-alt1.repacked.with.epm.8.x86_64.rpm
= Установка драйвера ODBC к MSSQL =
Драйвер требуется как для работы sqlcmd из mssql-tools, так и для других приложений. Ставится в месте установки приложений.
1. Установить необходимое программное обеспечение для установки и работы:
apt-get install eepm wget lftp unixODBC
2. Скачать последнюю сборку msodbcsql17 для SUSE (версия для rhel работает, но имеет проблемы с зависимостями в ALT):
wget "$(lftp -e 'ls;quit' https://packages.microsoft.com/sles/12/prod/ | awk '/msodbcsql17/ {a=$5} END {print "https://packages.microsoft.com/sles/12/prod/" a}')"
3. Установить с переупаковкой:
epm install --repack msodbcsql17-*-1.x86_64.rpm
4. Прописать символические ссылки на libssl и libcrypto (нужные имена файлов видно в выводе epm repack):
ln -s /lib64/libssl.so.10 /lib64/libssl.so.1.0.0
ln -s /lib64/libcrypto.so.10 /lib64/libcrypto.so.1.0.0
если изменится способ загрузки библиотек, вероятно потребуется выполнить ldconfig
5. Прописать как драйвер ODBC:
odbcinst -i -d -f /opt/microsoft/msodbcsql17/etc/odbcinst.ini &>/dev/null
Проверка установки:
<source lang="text"># odbcinst -q -d
[PostgreSQL]
[MySQL]
[ODBC Driver 17 for SQL Server]</source>
= Установка mssql-tools =
Уже должны быть установлены unixODBC и сопутствующие установке msodbcsql17 пакеты.
1. Скачать последнюю сборку mssql-tools для SUSE:
wget "$(lftp -e 'ls;quit' https://packages.microsoft.com/sles/12/prod/ | awk '/mssql-tools/ {a=$5} END {print "https://packages.microsoft.com/sles/12/prod/" a}')"
2. перепаковать:
epm repack mssql-tools-*-1.x86_64.rpm
3. Установить:
rpm -Uvh mssql-tools-*repacked.with.epm.*.x86_64.rpm
= Работа с СУБД посредством mssql-tools =
В примере используется подстановка: sa — суперпользователь, Pa$$word — пароль администратора, который указали при {{cmd|mssql-conf setup}}
Создание базы данных:
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'create database test'
Просмотр доступных баз данных:
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'sp_databases'
= Настройка драйвера ODBC для доступа к базе =
Драйвер уже должен быть установлен так, как написано ранее. Пример для базы test на сервере с IP 10.4.4.26.
Конфигурируем источник. Для этого создаём файл {{path|/etc/odbc.ini}} (или добавляем в него секцию):
<source lang="ini">
[MSSQLServer]
Driver = ODBC Driver 17 for SQL Server
Description = Test database on MSSQL Server on Linux
Trace = No
Server = 10.4.4.26
Port = 1433
TDS version = 0.95
Database = test</source>
Проверка источника:
{|class="standard"
!Значение
!Описание
|-
|{{term|MSSQLServer}}||Имя секции источника, прописанного в {{path|/etc/odbc.ini}}
|-
|{{term|sa}}||Имя пользователя
|-
|{{term|Pa$$word}}||Пароль пользователя
|}
<source lang="text" highlight="1"># echo 'SELECT name FROM sys.databases' | isql MSSQLServer sa 'Pa$$word' -b
+---------------------------------------------------------------------------------------------------------------------------------+
| name                                                                                                                            |
+---------------------------------------------------------------------------------------------------------------------------------+
| master                                                                                                                          |
| tempdb                                                                                                                          |
| model                                                                                                                          |
| msdb                                                                                                                            |
| test                                                                                                                            |
+---------------------------------------------------------------------------------------------------------------------------------+
SQLRowCount returns 0
5 rows fetched</source>
{{Attention|Не тестируйте подключение при входе по паролю к базе данных в мастере создания базы данных LibreOffice Base. Это приводит к зависанию LibreOffice Base.}}
= Установка драйвера JDBC к MSSQL =
1. Загрузите драйвер JDBC с сайта Microsoft по ссылке: https://www.microsoft.com/ru-RU/download/details.aspx?id=57175
Выбирайте загрузку {{path|sqljdbc_7.0.0.0_rus.tar.gz}}
2. Распакуйте файл jar из загруженного архива:
tar xf sqljdbc_7.0.0.0_rus.tar.gz sqljdbc_7.0/rus/mssql-jdbc-7.0.0.jre8.jar
cp sqljdbc_7.0/rus/mssql-jdbc-7.0.0.jre8.jar /usr/share/java
= Пример использования JDBC/MSSQL в LibreOffice Base =
Действия выполняются из-под обычного пользователя, пользователем же и могут быть выполнены.
1. Откройте LibreOffice Writer и добавьте класс {{path|/usr/share/java/mssql-jdbc-7.0.0.jre8.jar}} по аналогичной методике, как описано в статье [[Microsoft Access]]. Перезапустите LibreOffice.
2. Запустите LibreOffice Base, выберите подключение к базе данных через JDBC и заполните поля источника и драйвера:
;URL источника данных (подключаемся к серверу 10.4.4.26, порт стандартный, база данных test)
:<pre>sqlserver://10.4.4.26:1433;database=test</pre>
;Класс драйвера JDBC
:<pre>com.microsoft.sqlserver.jdbc.SQLServerDriver</pre>
{{Note|Указание базы данных через / (как в подсказке) не работает. [[https://docs.microsoft.com/ru-ru/sql/connect/jdbc/step-3-proof-of-concept-connecting-to-sql-using-java?view=sql-server-2017 пример на сайте Microsoft]].}}
[[Изображение:LibreOffice-MSSQL-JDBC.png]]
3. Укажите имя пользователя и то, что требуется пароль для подключения.
4. Сохраните базу данных LibreOffice Base в виде файла и можете работать на сервере MSSQL:
[[Изображение:LibreOffice-MSSQL-Connected.png]]


{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=ПО уровня предприятия|category=Enterprise Software|sortkey={{SUBPAGENAME}}}}
[[Категория:Admin]]
[[Категория:Admin]]

Текущая версия от 12:26, 20 января 2024

Есть рецепт в epm!
epm play mssql-server mssql-tools


Установка MS SQL с помощью EPM

# epm play mssql-server
# epm play mssql-tools

Установка сервера MSSQL на Альт Сервер 8

1. Скачайте демо-версию с https://packages.microsoft.com/rhel/7/mssql-server-2019/ (пакет mssql-server-15.0.2000.5-5.x86_64.rpm; может быть более новый)

2. Установите необходимые зависимости:

apt-get install eepm

3. Пересоберите под Альт:

epm repack mssql-server-15.0.2000.5-5.x86_64.rpm

4. Установите:

epm install mssql-server-15.0.2000.5-alt1.repacked.with.epm.6.x86_64.rpm

5. Создайте пользователя:

useradd mssql

6. Создайте рабочий каталог для сервера:

mkdir -p /var/opt/mssql
chown mssql:mssql /var/opt/mssql

7. Пропишите автоматический запуск службы:

systemctl enable mssql-server

8. Пройдите мастер первоначального конфигурирования:

/opt/mssql/bin/mssql-conf setup

SQL Server будет запущен.

9. Проверьте подключение:

/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'sp_databases'

Можно делать это с другой машины и из другой программы, например, из Management Studio.

Если SQL Server отвергает все попытки подключения с ошибкой "Error code 0x2746":

apt-get install libssl10
systemctl stop mssql-server
systemctl edit mssql-server

В открывшемся редакторе ввести это и сохранить:

[Service]
Environment="LD_LIBRARY_PATH=/opt/mssql/lib"

Создать ссылки на библиотеки, которые будет использовать SQL Server, и запустить его:

ln -s /lib64/libssl.so.1.0.2r /opt/mssql/lib/libssl.so
ln -s /lib64/libcrypto.so.1.0.2r /opt/mssql/lib/libcrypto.so
systemctl start mssql-server

Установка полнотекстового поиска

После установки основного пакета MS SQL, но до п. 8 (настройки сервера) установите аналогичным образом пакет msqsql-server-fts: 1. Скачайте пакет с https://packages.microsoft.com/sles/12/mssql-server-preview/ mssql-server-fts-15.0.1600.8-1.x86_64.rpm

2. Пересоберите под Альт:

epm repack mssql-server-fts-15.0.1600.8-1.x86_64.rpm

3. Установите:

epm install mssql-server-fts-15.0.1600.8-alt1.repacked.with.epm.8.x86_64.rpm


Установка драйвера ODBC к MSSQL

Драйвер требуется как для работы sqlcmd из mssql-tools, так и для других приложений. Ставится в месте установки приложений.

1. Установить необходимое программное обеспечение для установки и работы:

apt-get install eepm wget lftp unixODBC

2. Скачать последнюю сборку msodbcsql17 для SUSE (версия для rhel работает, но имеет проблемы с зависимостями в ALT):

wget "$(lftp -e 'ls;quit' https://packages.microsoft.com/sles/12/prod/ | awk '/msodbcsql17/ {a=$5} END {print "https://packages.microsoft.com/sles/12/prod/" a}')"

3. Установить с переупаковкой:

epm install --repack msodbcsql17-*-1.x86_64.rpm

4. Прописать символические ссылки на libssl и libcrypto (нужные имена файлов видно в выводе epm repack):

ln -s /lib64/libssl.so.10 /lib64/libssl.so.1.0.0
ln -s /lib64/libcrypto.so.10 /lib64/libcrypto.so.1.0.0

если изменится способ загрузки библиотек, вероятно потребуется выполнить ldconfig

5. Прописать как драйвер ODBC:

odbcinst -i -d -f /opt/microsoft/msodbcsql17/etc/odbcinst.ini &>/dev/null

Проверка установки:

# odbcinst -q -d
[PostgreSQL]
[MySQL]
[ODBC Driver 17 for SQL Server]

Установка mssql-tools

Уже должны быть установлены unixODBC и сопутствующие установке msodbcsql17 пакеты.

1. Скачать последнюю сборку mssql-tools для SUSE:

wget "$(lftp -e 'ls;quit' https://packages.microsoft.com/sles/12/prod/ | awk '/mssql-tools/ {a=$5} END {print "https://packages.microsoft.com/sles/12/prod/" a}')"

2. перепаковать:

epm repack mssql-tools-*-1.x86_64.rpm

3. Установить:

rpm -Uvh mssql-tools-*repacked.with.epm.*.x86_64.rpm

Работа с СУБД посредством mssql-tools

В примере используется подстановка: sa — суперпользователь, Pa$$word — пароль администратора, который указали при mssql-conf setup

Создание базы данных:

/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'create database test'

Просмотр доступных баз данных:

/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'sp_databases'

Настройка драйвера ODBC для доступа к базе

Драйвер уже должен быть установлен так, как написано ранее. Пример для базы test на сервере с IP 10.4.4.26.

Конфигурируем источник. Для этого создаём файл /etc/odbc.ini (или добавляем в него секцию):

[MSSQLServer]
Driver = ODBC Driver 17 for SQL Server
Description = Test database on MSSQL Server on Linux
Trace = No
Server = 10.4.4.26
Port = 1433
TDS version = 0.95
Database = test

Проверка источника:

Значение Описание
MSSQLServer Имя секции источника, прописанного в /etc/odbc.ini
sa Имя пользователя
Pa$$word Пароль пользователя
# echo 'SELECT name FROM sys.databases' | isql MSSQLServer sa 'Pa$$word' -b
+---------------------------------------------------------------------------------------------------------------------------------+
| name                                                                                                                            |
+---------------------------------------------------------------------------------------------------------------------------------+
| master                                                                                                                          |
| tempdb                                                                                                                          |
| model                                                                                                                           |
| msdb                                                                                                                            |
| test                                                                                                                            |
+---------------------------------------------------------------------------------------------------------------------------------+
SQLRowCount returns 0
5 rows fetched
Внимание! Не тестируйте подключение при входе по паролю к базе данных в мастере создания базы данных LibreOffice Base. Это приводит к зависанию LibreOffice Base.


Установка драйвера JDBC к MSSQL

1. Загрузите драйвер JDBC с сайта Microsoft по ссылке: https://www.microsoft.com/ru-RU/download/details.aspx?id=57175

Выбирайте загрузку sqljdbc_7.0.0.0_rus.tar.gz

2. Распакуйте файл jar из загруженного архива:

tar xf sqljdbc_7.0.0.0_rus.tar.gz sqljdbc_7.0/rus/mssql-jdbc-7.0.0.jre8.jar
cp sqljdbc_7.0/rus/mssql-jdbc-7.0.0.jre8.jar /usr/share/java

Пример использования JDBC/MSSQL в LibreOffice Base

Действия выполняются из-под обычного пользователя, пользователем же и могут быть выполнены.

1. Откройте LibreOffice Writer и добавьте класс /usr/share/java/mssql-jdbc-7.0.0.jre8.jar по аналогичной методике, как описано в статье Microsoft Access. Перезапустите LibreOffice.

2. Запустите LibreOffice Base, выберите подключение к базе данных через JDBC и заполните поля источника и драйвера:

URL источника данных (подключаемся к серверу 10.4.4.26, порт стандартный, база данных test)
sqlserver://10.4.4.26:1433;database=test
Класс драйвера JDBC
com.microsoft.sqlserver.jdbc.SQLServerDriver
Примечание: Указание базы данных через / (как в подсказке) не работает. [пример на сайте Microsoft].


LibreOffice-MSSQL-JDBC.png

3. Укажите имя пользователя и то, что требуется пароль для подключения.

4. Сохраните базу данных LibreOffice Base в виде файла и можете работать на сервере MSSQL:

LibreOffice-MSSQL-Connected.png