Не удалось загрузить библиотеку OpenSSL для Mac M1 SQL Server SQLSrv, убедитесь, что установлен OpenSSL 1.0 или 1.1

#php #macos #openssl #apple-m1 #sqlsrv

Вопрос:

Я только что купил M1 Mac mini под управлением Big Sur 11.6, я установил PHP 7.3, msodbcsql17, mssql-инструменты, sqlsrv и pdo_sqlsrv.

Но когда я пытаюсь подключиться с помощью sqlsrv, возникает следующая ошибка [Microsoft][Драйвер ODBC 17 для SQL Server]Поставщик SSL: [Не удалось загрузить библиотеку OpenSSL, убедитесь, что установлен OpenSSL 1.0 или 1.1]

Я установил openssl@1.1 через brew, и мой профиль содержит

 export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"
 

Похоже, что PHP использует правильную версию, при печати echo OPENSSL_VERSION_TEXT написано OpenSSL 1.1.1 l 24 августа 2021 года

Я не уверен, что еще можно попробовать, чтобы это сработало?

Ответ №1:

У меня была та же ошибка «Библиотека OpenSSL не может быть загружена» сегодня (на Intel Mac) при попытке подключиться через isql. (Также, используя python, как ошибка pyodbc «08001»: Драйвер ODBC 17 для клиента SQL Server не удается установить соединение).

По — видимому, по состоянию на начало октября 2021 года последний драйвер ODBC SQL Server не совместим с последней версией 3 OpenSSL.

См.: https://github.com/microsoft/homebrew-mssql-release/issues/59.

Диагностика: Проверьте, какая версия OpenSSL вызывается через:

 ls -l /usr/local/opt/openssl/lib 
 

Вы должны увидеть запись для OpenSSL 1.0 или 1.1 (например, libssl.dylib -> libssl.1.1.dylib); когда у меня возникла эта проблема, она показала libssl.dylib ->> libssl.3.dylib.

Обходной путь состоит в том, чтобы просто создать символическую ссылку. (Используйте «информация о напитке openssl@1.1» чтобы проверить имя файла/путь.) Например:

 ln -s /usr/local/Cellar/openssl@1.1/1.1.1l_1 /usr/local/opt/openssl
 

Комментарии:

1. Я получил ln: /usr/локальный/opt/openssl: Такого файла или каталога нет