Ребята, я установил пакет msodbcsql как минимум несколько десятков раз.Никогда эта проблема не возникала.Даже потратил весь вчерашний день, пытаясь это исправить.
Шаг 1: добавьте ключ apt и сделайте репозиторий в sourced.list.d Шаг 2: apt-get установите расширения msodbcsql17, mssql-tools, php odbc_pdo,и т. д. Шаг 3: создайте очень простой файл test.php, который (на всех других существующих старых серверах РАБОТАЕТ) устанавливает тестовое соединение с моей базой данных mssql.
Сбой:
SQLSTATE[01000] SQLDriverConnect: 0 [unixODBC][Driver Manager]Can't open lib '/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1' : file not found
Да,файл существует.
Я пробовал chmod 755 для файла, все еще говорит, что он не существует.
Я сделал ldd для файла, вот вывод:
linux-vdso.so.1 (0x00007ffe13bf8000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc1e865a000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fc1e8452000)
libodbcinst.so.2 => /usr/lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007fc1e823d000)
libcrypto.so.1.0.2 => not found
libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007fc1e7f67000)
libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007fc1e7d1c000)
libssl.so.1.0.2 => not found
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fc1e7b15000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc1e778c000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc1e73ee000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc1e71d6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc1e6fb7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc1e6bc6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc1e8c65000)
libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007fc1e69bc000)
libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007fc1e678a000)
libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007fc1e6586000)
libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007fc1e637b000)
libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007fc1e6177000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fc1e5f5c000)
Кажется, отсутствуют две библиотеки.Я обнаружил, что у меня есть libssl1.1 и 1.0.0.Я попытался создать символические ссылки на ОБА версии 1.1 и 1.0.0 разделяемых объектов libssl.По-прежнему получаю ту же ошибку.
Опять же, ДА - я скопировал / вставил точный путь, по которому кричит ошибка.Путь правильный.
Я также пытался использовать командную строку isql - та же самая ошибка.Так что это, безусловно, что-то с библиотекой odbc <-> msodbcsql.Это НЕ специфично для PHP / PDO / ODBC.
Интересно, что инструмент командной строки mssql-cli (из репозитория Microsoft) работает.Запуск ldd против него говорит, что это НЕ динамический исполняемый файл.
Установленные версии всех задействованных библиотек:
unixodbc = 2.3.7
libodbc1 = 2.3.7
odbcinst = 2.3.7
msodbcsql = 17.3.1.1-1
Все версии являются самыми последними из репозитория Microsoft.Все под Ubuntu 18.04.Я только что повторил процедуру (я делал бесчисленное количество раз) на моем ноутбуке - тот же результат.Жалуется, что библиотека драйвера не найдена.
Вывод odbcinst -j выглядит следующим образом:
unixODBC 2.3.7
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Да, файлы существуют в /etc/odbcinst.ini и / etc / odb.ini.
Содержимое /etc/odbcinst.ini:
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1
UsageCount=1
Запуск "stat /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.3.so.1.1":
Size: 2046672 Blocks: 4000 IO Block: 4096 regular file
Я нашел очень мало информации по этому вопросу.Несколько постов, с которыми я сталкивался, либо НЕ решили проблему, либо НЕ получили ответа.
Итак ... я что-то здесь упускаю?Или я должен подать отчет об ошибке?
Кстати, у меня не было ничего, кроме проблем с Ubuntu 18.04 и вещами msodbc с первого дня.Первоначально была проблема libcurl3 / 4.Я полагаю, что это было исправлено сейчас.Но, кажется, это может быть ... ошибка?