как узнать версию odbc драйвера linux
Установка MS SQL ODBC Driver под Linux и сборка плагина для Qt 5.9
Несколько дней назад встал вопрос о написании консольного приложения, которое будет работать в Linux CentOS 7 и взаимодействовать с MS SQL Server 2012. Мне очень нравится Qt и я решил, что воспользуюсь им для решения этой задачи. И если под Windows я достаточно быстро настроил необходимое окружение, то под Linux я столкнулся с проблемами, которые очень тяжело было решить с помощью гуглинга. Этому вопросу я посвятил полтора дня. Считаю полезным поделиться своим опытом, возможно кому-то это поможет сэкономить драгоценное время.
Инструменты
Я не хочу тянуть на сервер исходники Qt, для того чтобы собрать плагин и само приложение. Поэтому беру образ CentOS 7 LiveGNOME и устанавливаю его на VirtualBox машину. После делаю полный апдейт, и ставлю VirtualBox Guest Additions.
Скачиваю установщик Qt для Linux x64. Устанавливаю Qt 5.9.1, дополнительно при установке выбираю галочку Source, чтобы получить исходники.
Установка Microsoft ODBC Driver for SQL Server
Согласно инструкции устанавливаю драйвер:
Драйвер нужно установить как на VirtualBox, так и на машину, где будет работать софт.
Сборка Qt плагина QODBC
Следуя инструкции, скачиваем куда-нибудь unixODBC, распаковываем. Теперь нам нужно собрать unixODBC и установить. В документации Qt, а так же в других источниках в основном я встречал примеры, которые предполагают установку unixODBC в /usr/local/unixODBC. Тут дело вкуса конечно, но я буду использовать именно такое расположение. Так же файлы конфигов драйверов я хочу поместить в /usr/local/etc Для этого нужно сконфигурировать unixODBC со следующими параметрами:
Затем собираем и устанавливаем:
Теперь необходимо настроить конфигурацию Microsoft ODBC Driver for SQL Server. Для этого переходим в /usr/local/unixODBC/bin и выполняем:
Если вы устанавливали драйвер как было описано выше, то расположение файла odbcinst.ini будет именно таким. Иначе вам нужно определить свой путь. Все эти действия нужно выполнить и на Virtualbox машине и на рабочей.
Теперь нужно собрать Qt плагин для работы с ODBC драйвером. И с этого момента начинаются проблемы, которые частично связаны с багом, который еще не пофиксили. Для того, чтобы собрать плагин придется применить некоторые костыли. Если у кого-то возникнет более элегантный вариант костыля, пожалуйста напишите в комментариях.
Итак, для сборки в штатных условиях нам нужно выполнить простую процедуру. Переходим в QT_DIR/5.9.1/Src/qtbase/src/plugins/sqldrivers/odbc и выполняем:
Но из-за того, что имеем баг, скорее всего вы получите ошибку:
На отсутствие файла qtsqldrivers-config.pri, можно не обращать внимание, а вот вторая ошибка не даст нам собрать плагин. Чтобы ее избежать нужно закомменитровать в файле odbc.pro строчку:
После этого повторим вызов qmake:
Как бы вы ни поступили, теперь можно выполнить:
Тестовое приложение
Я создал консольное приложение в Qt и написал следующий код для тестирования соединения:
Собираем проект на Virtualbox машине. Запускаем, убеждаемся, что все работает. После этого собираем Release версию программы. Я не буду сейчас описывать процесс деплоя Qt приложений. Возможно это тема для еще одной публикации. Я опишу лишь ключевые моменты.
Требования к системе (Linux и macOS)
Скачать драйвер ODBC
Эта статья содержит требования для использования драйвера Microsoft ODBC Driver 13 for SQL Server в Linux и macOS.
Совместимость с версиями SQL
Совместимость с версиями SQL для драйверов Linux и macOS аналогична совместимости для драйверов Windows.
Поддержка операционных систем
Версии 17, 13.1 и 13 драйверов Linux и macOS поддерживаются для архитектур x64 следующих операционных систем:
Версия драйвера → ↓ Операционная система | 17.8 | 17,7 | 17.6 | 17.5 | 17.4 | 17.3 | 17.2 | 17.1 | 17.0 | Версия 13.1 | 13 |
---|---|---|---|---|---|---|---|---|---|---|---|
Apple OS X 10.11 (El Capitan) | Да | Да | Да | Да | Да | Да | Да | ||||
Apple macOS 10.12 (Sierra) | Да | Да | Да | Да | Да | Да | Да | ||||
Apple macOS 10.13 (High Sierra) | Да | Да | Да | Да | Да | Да | Да | Да | Да | ||
Apple macOS 10.14 (Mojave) | Да | Да | Да | Да | Да | Да | |||||
Apple macOS 10.15 (Catalina) | Да | Да | Да | Да | |||||||
Apple macOS 11.0 (Big Sur) | Да | Да | |||||||||
Alpine Linux 3.11 | Да | Да | Да | Да | |||||||
Alpine Linux 3.12 | Да | Да | |||||||||
Alpine Linux 3.13 | Да | Да | |||||||||
Debian Linux 8 | Да | Да | Да | Да | Да | Да | Да | Да | Да | ||
Debian Linux 9 | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
Debian Linux 10 | Да | Да | Да | Да | Да | ||||||
Oracle Linux 7 | Да | Да | |||||||||
Oracle Linux 8 | Да | Да | Да | Да | |||||||
Red Hat Enterprise Linux 6 | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | |
Red Hat Enterprise Linux 7 | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
Red Hat Enterprise Linux 8 | Да | Да | Да | Да | Да | ||||||
SUSE Linux Enterprise Server 11 1 | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
SUSE Linux Enterprise Server 12 | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
SUSE Linux Enterprise Server 15 | Да | Да | Да | Да | Да | Да | |||||
Ubuntu Linux 14.04 | Да | Да | Да | Да | Да | Да | Да | ||||
Ubuntu Linux 16.04 | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да | Да |
Ubuntu Linux 18.04 | Да | Да | Да | Да | Да | Да | Да | ||||
Ubuntu Linux 20.04 | Да | Да | Да | ||||||||
Ubuntu Linux 21.04 | Да | Да |
1 Драйвер ODBC версии 17 поддерживает только SUSE Linux Enterprise Server 11 SP4
Пакеты установки для Microsoft ODBC Driver 13, 13.1 и 17 for SQL Server в Linux и macOS разрешают зависимости драйвера автоматически при установке с помощью системы управления пакетами дистрибутива, как описано в разделах Установка ODBC Driver (Linux) и Установка ODBC Driver (macOS).
Драйвер Microsoft ODBC 11 для SQL Server
Драйвер ODBC для Red Hat Enterprise Linux 5 (64-разрядная версия) требует наличия следующих пакетов, и его можно скачать здесь: Microsoft ODBC Driver 11 for SQL Server — Red Hat Linux
Драйвер ODBC для Red Hat Enterprise Linux 6 (64-разрядная версия) требует наличия следующих пакетов, и его можно скачать здесь: Microsoft ODBC Driver 11 for SQL Server — Red Hat Linux
Драйвер ODBC для SUSE Linux Enterprise 11 с пакетом обновления 2 (64-разрядная версия) требует наличия следующих пакетов, и его можно скачать здесь: Microsoft ODBC Driver 11 Previews for SQL Server — SUSE Linux
Установка Microsoft ODBC Driver for SQL Server (Linux)
В этой статье объясняется, как установить Microsoft ODBC Driver for SQL Server в Linux. В ней также содержатся инструкции для необязательных средств командной строки для SQL Server ( bcp и sqlcmd ) и заголовков разработки unixODBC.
В этой статье приведены команды для установки драйвера ODBC из оболочки bash. Сведения о том, как загрузить пакеты напрямую, см. в разделе Скачивание драйвера ODBC Driver for SQL Server.
Microsoft ODBC 17
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 17 из оболочки bash в различных дистрибутивах Linux.
Alpine Linux
Для поддержки Alpine требуется драйвер версии 17.5 или более поздней.
Debian
Вместо настройки переменной среды ACCEPT_EULA вы можете создать переменную debconf с именем «msodbcsql/ACCEPT_EULA»: echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
Red Hat Enterprise Server и Oracle Linux
SUSE Linux Enterprise Server
Ubuntu
Вместо настройки переменной среды ACCEPT_EULA вы можете создать переменную debconf с именем «msodbcsql/ACCEPT_EULA»: echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections
Предыдущие версии
В следующих разделах приведены инструкции по установке предыдущих версий драйвера Microsoft ODBC в Linux. Рассматриваются следующие версии драйверов.
ODBC 13.1
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13.1 из оболочки bash в различных дистрибутивах Linux.
Debian 8
Red Hat Enterprise Server 6
Red Hat Enterprise Server 7
SUSE Linux Enterprise Server 11
SUSE Linux Enterprise Server 12
Ubuntu 15.10
Ubuntu 16.04
Ubuntu 16.10
ODBC 13
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13 из оболочки bash в различных дистрибутивах Linux.
Red Hat Enterprise Server 6 (ODBC 13)
Red Hat Enterprise Server 7 (ODBC 13)
Ubuntu 15.10 (ODBC 13)
Ubuntu 16.04 (ODBC 13)
SUSE Linux Enterprise Server 12 (ODBC 13)
Автономная установка
Если необходимо установить драйвер Microsoft ODBC версии 13 на компьютере без подключения к Интернету, потребуется разрешить зависимости пакетов вручную. Драйвер Microsoft ODBC версии 13 имеет следующие прямые зависимости:
Каждый из этих пакетов, в свою очередь, имеет собственные зависимости, которые могут отсутствовать в системе. Для решения этой проблемы в общем случае следует обратиться к документации по диспетчеру пакетов используемого дистрибутива: Red Hat, Ubuntu и SUSE
Другое распространенное решение — вручную скачать все зависимые пакеты в одну папку на компьютере установки, а затем вручную установить каждый пакет по очереди, завершив пакетом драйвера Microsoft ODBC версии 13.
Red Hat Linux Enterprise Server 7
Ubuntu 16.04 (ODBC 13 в автономном режиме)
SUSE Linux Enterprise Server 12 (ODBC 13 в автономном режиме)
После установки пакета можно проверить, находит ли драйвер Microsoft ODBC версии 13 все нужные зависимости. Для этого выполните команду ldd и проверьте наличие отсутствующих библиотек в выходных данных:
ODBC 11
В следующих разделах объясняется, как установить Microsoft ODBC Driver 11 в Linux. Для использования драйвера сначала установите диспетчер драйверов unixODBC. Дополнительные сведения: Установка диспетчера драйверов.
Процесс установки
Порядок установки драйвера
Убедитесь, что у вас есть корневое разрешение.
Чтобы просмотреть список доступных параметров установки, выполните следующую команду: ./install.sh.
После просмотра лицензионного соглашения введите YES для продолжения установки.
Удаление
Вы можете удалить драйвер ODBC 11 на Linux, выполнив следующие команды:
Файлы драйвера
Драйвер ODBC в Linux состоит из следующих компонентов.
Примечание. В одной программе нельзя ссылаться на msodbcsql.h и odbcss.h одновременно.
Файл msodbcsql.h устанавливается в папке /opt/microsoft/msodbcsql17/include/ для версии 17 драйвера и в папке /opt/microsoft/msodbcsql/include/ для версии 13.
Загрузка файла ресурсов
Устранение неполадок
Если не удается установить подключение к SQL Server с помощью драйвера ODBC, см. статью, посвященную известным проблемам при устранении неполадок подключения.
Дальнейшие действия
После установки драйвера можно попробовать пример приложения C++ ODBC. Подробнее о разработке приложений ODBC см. в разделе Разработка приложений.
Дополнительные сведения см. в статьях с заметками о выпуске и требованиями к системе для драйвера ODBC.
Как узнать версию odbc драйвера linux
Шустрый
Профиль
Группа: Участник
Сообщений: 72
Регистрация: 31.12.2007
Репутация: нет
Всего: нет
Народ, где можно скачать ODBC драйвера за версия Oracle9.2i?
я скачал но оно видимо другая версия.
Как можно узнать что за драйвер и за какую версию?
Опытный
Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва
Репутация: 2
Всего: 13
Leprechaun Software Developer
Профиль
Группа: Модератор
Сообщений: 15680
Регистрация: 24.3.2004
Репутация: 206
Всего: 534
Цитата(KISha @ 11.10.2008, 11:12 ) |
Народ, где можно скачать ODBC драйвера за версия Oracle9.2i? |
1. ODBC драйвера ставятся при установке Oracle Client. Скачать Oracle Client можно с сайта Oracle.
2. Какое отношение вопрос имеет к Java?
Цитата(KISha @ 11.10.2008, 11:12 ) |
Как можно узнать что за драйвер и за какую версию? |
Опытный
Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва
Репутация: 2
Всего: 13
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.
[ Время генерации скрипта: 0.1104 ] [ Использовано запросов: 21 ] [ GZIP включён ] Установка драйвера MySQL ODBC в Linux MintODBC – это стандартный интерфейс между базой данных и приложением, взаимодействующим с ней. Наличие подобного стандарта позволяет приложению на клиентском компьютере получать доступ к любой базе данных на сервере, используя SQL. У организации, в которой я работаю, есть несколько сайтов с калькуляторами, для расчета стоимости изготовления фотокниг, печатей и штампов. Для оформления заказов мы используем 1С, поэтому появилась мысль выгружать расчеты с сайтов в программу. В общем то ни чего нового мы не придумали, поэтому через день 1С-ка замечательно отрабатывала заказы с сайтов через ODBC-драйвер на машинах под ОС Windows используя COMОбъекты. Все бы ни чего, но появилась потребность подключаться к сайтам с машин под управлением OC Linix Mint, а так как COMОбъекты это «фишка» Windows, естественно все перестало работать. В редакции платформы 1С 8.2.14 появилась возможность устанавливать связь с внешними источниками данных и работает она с ними так же через механизм ODBC, но без использования COMОбъектов. Т.е. установив ODBC драйвер нам потребовалось бы только поправить обработку подключения к базе данных сайта. Установка ODBC драйвераПоиск в интернете сразу же выдал список сайтов с описанием процесса установки, правда на ОС Ubuntu, который сводился к выполнению простой команды: Ну что же, в Linux Mint одним из стандартных репозиториев является убунтовский. Все просто — одна команда и можно работать! Пробуем и… сталкиваемся с проблемой поиска драйвера ODBC. Оказывается такого пакета больше не существует. Согласно архивам его удалили после обнаружения соответствующего бага. Поэтому все становится несколько сложнее. Теперь можно проверить видит ли ODBC драйвер для MySQL Если все сделано правильно, мы должны увидеть следующее:
|