MSSQL

Материал из ALT Linux Wiki


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

1. Скачайте демо-версию с https://packages.microsoft.com/sles/12/mssql-server-preview/ (пакет mssql-server-15.0.1400.75-4.x86_64.rpm; может быть более новый)

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

apt-get install eepm cyrus-sasl2 libsasl2-plugin-gssapi libsss_nss_idmap pbzip2

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

epm repack mssql-server-15.0.1400.75-4.x86_64.rpm

4. Установите через rpm:

rpm -Uvh --nodeps --noscripts mssql-server-15.0.1400.75-alt1.repacked.with.epm.5.x86_64.rpm

Если altbug #35561 ещё не исправлен, потребуется собрать пакет-заглушку для /bin/sysctl. Для этого можно взять пример spec-файла из altbug #35559и собрать и установить пакет (пакет должен оказаться в ~/RPM/RPMS/noarch; помните, что сборка пакетов в ALT Linux выполняется от имени обычного пользователя):

rpm -bb bin-sysctl.spec
rpm -Uvh bin-sysctl-0.1-alt1.noarch.rpm

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

useradd mssql

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

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

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

systemctl enable mssql-server
systemctl start mssql-server

8. После установки пакета выполните для настройки сервера

/opt/mssql/bin/mssql-conf setup

Установка драйвера 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]

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

1. Установите пакет unixODBC и eepm:

apt-get install eepm unixODBC

2. Скачайте и перепакуйте из каталога https://packages.microsoft.com/rhel/7/prod/ пакеты msodbcsql17-17.2.0.1-1.x86_64.rpm и mssql-tools-17.2.0.2-1.x86_64.rpm

epm repack msodbcsql17-17.2.0.1-1.x86_64.rpm
epm repack mssql-tools-17.2.0.2-1.x86_64.rpm

3. Установите через rpm:

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

Работа с базой данных

В примере используется подстановка: 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.

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

[MSSQLServer]
Driver = ODBC Driver 17 for SQL Server
Description = Test database on MSSQL Server on Linux
Trace = No
Server = 192.168.1.200
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

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

4. Запустите 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

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

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

LibreOffice-MSSQL-Connected.png