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

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


Строка 12: Строка 13:
После установки пакета выполните для настройки сервера
После установки пакета выполните для настройки сервера
  # /opt/mssql/bin/mssql-conf setup
  # /opt/mssql/bin/mssql-conf setup
-->
<!--
<!--
В каталоге /opt/mssql/lib/mssql-conf есть вспомогательные скрипты.
В каталоге /opt/mssql/lib/mssql-conf есть вспомогательные скрипты.
Строка 21: Строка 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 =
= Установка сервера MSSQL на Альт Сервер 8 =


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


2. Установите необходимые зависимости:
2. Установите необходимые зависимости:
  apt-get install eepm cyrus-sasl2 libsasl2-plugin-gssapi libsss_nss_idmap
  apt-get install eepm


3. Пересоберите под Альт:
3. Пересоберите под Альт:
  epm repack mssql-server-15.0.1000.34-2.x86_64.rpm
  epm repack mssql-server-15.0.2000.5-5.x86_64.rpm


4. Установите через rpm:
4. Установите:
  rpm -Uvh mssql-server-15.0.1000.34-alt1.repacked.with.epm.3.x86_64.rpm --nodeps --noscripts
  epm install mssql-server-15.0.2000.5-alt1.repacked.with.epm.6.x86_64.rpm


5. После установки пакета выполните для настройки сервера
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
  /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.


1. Установите пакет {{pkg|unixODBC}} и {{pkg|eepm}}:
Если SQL Server отвергает все попытки подключения с ошибкой "Error code 0x2746":
  apt-get install eepm unixODBC
  apt-get install libssl10
systemctl stop mssql-server
systemctl edit mssql-server


2. Скачайте и перепакуйте из каталога https://packages.microsoft.com/rhel/7/prod/ пакеты {{pkg|msodbcsql17-17.2.0.1-1.x86_64.rpm}} и {{pkg|mssql-tools-17.2.0.2-1.x86_64.rpm}}
В открывшемся редакторе ввести это и сохранить:
  epm repack msodbcsql17-17.2.0.1-1.x86_64.rpm
  [Service]
  epm repack mssql-tools-17.2.0.2-1.x86_64.rpm
  Environment="LD_LIBRARY_PATH=/opt/mssql/lib"


3. Установите через rpm:
Создать ссылки на библиотеки, которые будет использовать SQL Server, и запустить его:
  rpm -Uvh msodbcsql17-17.2.0.1-alt1.repacked.with.epm.2.x86_64.rpm mssql-tools-17.2.0.2-alt1.repacked.with.epm.2.x86_64.rpm --nodeps
  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}}


В примере используется подстановка: sa — суперпользователь, Pa$$word — пароль администратора, который указали при {{cmd|mssql-conf setup}}
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


Создание базы данных:
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'create database test'


Просмотр доступных баз данных:
= Установка драйвера ODBC к MSSQL =
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P'Pa$$word' -Q 'sp_databases'


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


1. Установить необходимое программное обеспечение для установки и работы:
1. Установить необходимое программное обеспечение для установки и работы:
  apt-get install eepm wget unixODBC
  apt-get install eepm wget lftp unixODBC


2. Скачать последнюю сборку msodbcsql17 для SUSE:
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}')"
  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}')"


Строка 71: Строка 100:
  epm install --repack msodbcsql17-*-1.x86_64.rpm
  epm install --repack msodbcsql17-*-1.x86_64.rpm


4. Прописать как драйвер ODBC:
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 -i -d -f /opt/microsoft/msodbcsql17/etc/odbcinst.ini &>/dev/null


Строка 80: Строка 115:
[ODBC Driver 17 for SQL Server]</source>
[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]]

Текущая версия от 15: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