0. Установить unixODBC http://www.unixodbc.org/
при установке лучше всего не менять параметры по умолчанию, чтобы система сразу подхватила драйвера. То есть не нужно делать ./configure --prefix=/usr/local/unixODBC и ./configure --sysconfdir=/etc.
./configure
./make
./make install
Дополнение: Для того чтобы в линукс odbc интерфейс мог получать данные из БД в юникоде, нужно у установить DBD::ODBC с поддержкой юникод.
OOn non-Windows platforms Unicode support is disabled by default.
To enable it specify -u to Makefile.PL when you configure DBD::ODBC.
https://metacpan.org/pod/DBD::ODBC#Enabling-and-Disabling-Unicode-support
You can also specify that you want UNICODE support by setting the DBD_ODBC_UNICODE environment variable prior to install:
export DBD_ODBC_UNICODE=1
cpanm DBD::ODBC
|
1. Скачать драйвер с сайта майкрософт для убунту. ODBC linux MSSQL
https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/m/msodbcsql18/
2. deb2tgz перевести в формат слаки и установить
https://www.slackbuilds.org/repository/14.2/misc/deb2tgz/
3. разобраться какие библиотеки требует драйвер в папке /opt/microsoft с помощью ldd
после находим отсутствующие библиотеки через locate,
например locate libodbcinst.so.2
приводит к /usr/local/unixODBC/lib/libodbcinst.so.2
4. создать символьные линки библиотек в /lib64
libodbcinst.so.2 => not found
линки создаем обращаем внимание куда попали файлы библиотек после установки unixodbc
так ln -s /usr/local/unixODBC/lib/libodbcinst.so.2 /lib64/libodbcinst.so.2 ,
или так ln -s /usr/local/lib/libodbcinst.so.2 /lib64/libodbcinst.so.2
есть проблемы которые возникают изза разных версий дрйвера odbc от майкрософт,
на виртуалке был скачен драйвер msodbcsql18_18.0.1.1-1_amd64 у которого в зависимостях не было библиотек libcrypt libssl версии 1.0.0. . На реальной машине с драйвером libmsodbcsql-13.1.so.9.2 есть зависемости которые я не смог разрешить на slack 15. Вариант решения брать опробованный драйвер (https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/m/msodbcsql18/ ) и снести проблемный.
ln -s /usr/lib64/libcrypto.so.1.1 /lib64/libcrypto.so.1.0.0
odbcinst.ini - после установки драйвера образец будет лежать в папке,
/opt/microsoft/..../etc
нужно скопировать в папку unixodbc (/usr/local/etc/)
[ODBC Driver 18 for SQL Server]
Description=Microsoft ODBC Driver 18 for SQL Server
Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.0.so.1.1
также нужно проверить скрипт на перле, если ругается на DBD::ODBC
odbc.ini (/usr/local/etc/) тут прописываются DSN
[demo]
Driver = ODBC Driver 18 for SQL Server
Description = demo dsn
Server = MAINSTATION\MSQL2019
TrustServerCertificate = yes
Database = Test
User = sa
Password =
5. создать dsn , создать описание драйвера odbcinst -j
6. тестовый скрипт для проверки связи с сервером
#!/usr/bin/perl -w
use strict;
use DBI;
# Replace datasource_name with the name of your data source.
# Replace database_username and database_password
# with the SQL Server database username and password.
my $data_source = q/dbi:ODBC:demo/;
my $user = q/sa/;
my $password = q/pass/;
# Connect to the data source and get a handle for that connection.
my $dbh = DBI->connect($data_source, $user, $password)
or die "Can't connect to $data_source: $DBI::errstr";
# This query generates a result set with one record in it.
my $sql = "SELECT 1 AS test_col";
# Prepare the statement.
my $sth = $dbh->prepare($sql)
or die "Can't prepare statement: $DBI::errstr";
# Execute the statement.
$sth->execute();
# Print the column name.
print "$sth->{NAME}->[0]\n";
# Fetch and display the result set value.
while ( my @row = $sth->fetchrow_array ) {
print "@row\n";
}
# Disconnect the database from the database handle.
$dbh->disconnect;
********************************************
odbc.ini
[demo]
Driver = ODBC Driver 18 for SQL Server
Description = demo dsn
Server = MAINSTATION\MSQL2019
TrustServerCertificate = yes
Database = Test
User = sa
Password =
********************************************
odbcinst.ini - после установки драйвера образец будет лежать в папке,
/opt/microsoft/..../etc
нужно скопировать в папку unixodbc
[ODBC Driver 18 for SQL Server]
Description=Microsoft ODBC Driver 18 for SQL Server
Driver=/opt/microsoft/msodbcsql18/lib64/libmsodbcsql-18.0.so.1.1