Acabo de comprar un M1 Mac mini con Big Sur 11.6, instalé PHP 7.3, msodbcsql17, mssql-tools, sqlsrv y pdo_sqlsrv.
Pero cuando intento conectarme usando sqlsrv, ocurre el siguiente error [Microsoft][Controlador ODBC 17 para SQL Server]Proveedor SSL: [No se pudo cargar la biblioteca OpenSSL, asegúrese de que OpenSSL 1.0 o 1.1 esté instalado]
Instalé openssl@1.1 a través de brew y mi perfil contiene
export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"Parece que PHP está usando la versión correcta, al imprimir echo OPENSSL_VERSION_TEXT, dice OpenSSL 1.1.1l 24 de agosto de 2021
No estoy seguro de qué más probar para que funcione.
Para M1 Mac, la ubicación predeterminada de brew install es /opt/homebrew , en lugar de /usr/local . Consulte este enlace . Por lo tanto, el enlace simbólico que necesita agregar/cambiar es:
ln -sfn /opt/homebrew/Cellar/openssl@1.1/1.1.1m /opt/homebrew/opt/openssl
Usando la opción -f ya que está forzando a reemplazar el enlace, mientras usa -n como el enlace de origen es un directorio. Por supuesto, cambie la versión si su openssl no es 1.1.1m .
Tuve el mismo error "No se pudo cargar la biblioteca OpenSSL" hoy (en una Mac Intel) al intentar conectarme a través de isql. (Además, al usar python, como error de pyodbc '08001': el controlador ODBC 17 para el cliente de SQL Server no puede establecer la conexión).
Aparentemente, a principios de octubre de 2021, el último controlador ODBC de SQL Server no es compatible con la última versión 3 de OpenSSL.
Consulte: https://github.com/microsoft/homebrew-mssql-release/issues/59 .
Diagnóstico: verifique qué versión de OpenSSL se está llamando a través de:
ls -l /usr/local/opt/openssl/libDebería ver una entrada para OpenSSL 1.0 o 1.1 (por ejemplo, libssl.dylib -> libssl.1.1.dylib); cuando tenía este problema, mostraba libssl.dylib -> libssl.3.dylib.
La solución es simplemente crear un enlace simbólico. (Use "brew info openssl@1.1" para verificar el nombre de archivo/ruta). Por ejemplo:
ln -s /usr/local/Cellar/openssl@1.1/1.1.1l_1 /usr/local/opt/openssl