sqlcmd не работает: не удается открыть библиотеку libmsodbcsql.13.dylib

Это ниже - точка входа в скрипт с несколькими входами.

#!/bin/bash
[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"

# your script's payload here

The #! строка, надеюсь, понятна

во второй строке

$# -ge 1 проверяет наличие хотя бы одного аргумента командной строки

-a - булев оператор

-. f "$1" проверяет, является ли первый аргумент файлом

&& следует директива, которая будет выполнена, если предыдущее условие истинно

|| следует, что произойдет, если условие проверки не истинно

nc -k -l 127.0.0.1 4444 > filename.out
my_processing_script filename.out

-or-

nc -k -l 127.0.0.1 4444 | my_processing_script

итак, если у меня есть аргумент и это файл, то моим входом будет этот файл, если нет, то мой вход идет из трубы, т.е. т.е. "-"

тогда вы можете запускать свою штуку как хотите. Либо

я тестировал с полезной нагрузкой

awk '{print $2}' ${input}

и мой вход шел от команды netstat -rn и работал в любом случае. Надеюсь, это то, о чем вы спрашиваете

4
24.10.2017, 15:18
4 ответа

Как говорит @thrig, я пытался dtruss отладить проблему,

sudo dtruss sqlcmd -S someserver

И из вывода sqlcmd пытается прочитать /usr/local/ lib/libodbcinst.2.dylib и не удалось.

Добавлена ​​символическая ссылка libodbcinst.2.dylib решил проблему, так что на самом деле это вызвано отсутствием зависимости, вздох

3
27.01.2020, 20:52

Это происходит не на всех наших машинах, но сегодня мы столкнулись с этим. Мы запустили

brew install msodbcsql

Мы обнаружили

libmsodbcsql13.dylib not found

Мы запустили

brew link msodbcsql

В результате:

Создано 4 символические ссылки

Это исправлено вопрос для нас.

2
27.01.2020, 20:52

Я столкнулся с той же проблемой, и трассировка dtrussдала тот же результат, что и daisy.

Отсутствующая библиотека находится в драйверах unixodbc. Вы можете установить их с brew install unixodbc, если у вас их нет. Команда ссылки и пути, необходимые для связи в моей системе, были следующими:

ln /usr/local/Cellar/unixodbc/2.3.6/lib/libodbcinst.2.dylib /usr/local/lib/libodbcinst.2.dylib

Очевидно, у вас может быть другая версия, но она должна быть расположена ниже пути/usr/local/Cellar/unixodbc

После добавления этой ссылки я могу подключаться к своим локальным и удаленным SQL-серверам с терминала. У меня macOS High Sierra 10.13.5.

0
27.01.2020, 20:52

Решение :Для 13 версии нужен открытый ssl v 1.0.0, можете попробовать.

установка варкиhttps://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb

-1
07.08.2020, 02:44

Теги

Похожие вопросы