在mac os 通过django 安装odbc驱动 连接 sql server 数据库

560 阅读1分钟

再给老客户维护一个django的项目的时候,数据库用的是sqlserver,而我用的是mac 系统的电脑,所以驱动不是很好安装。这里记录下。

微软官方安装指导链接 learn.microsoft.com/zh-cn/sql/c…

我遇到的问题,在安装 ODBC 驱动程序后尝试进行连接时,某些用户会遇到问题,并收到如下所示的错误:"[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 18 for SQL Server' : file not found (0) (SQLDriverConnect)"。 这可能是由于未正确配置 unixODBC,无法找到已注册的驱动程序。 在这种情况下,创建符号链接可以解决此问题。

sudo ln -s /usr/local/etc/odbcinst.ini /etc/odbcinst.ini sudo ln -s /usr/local/etc/odbc.ini /etc/odbc.ini

又提示错误

django.db.utils.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:16000069:STORE routines::unregistered scheme:scheme=file][error:80000002:system library::No such file or directory:calling stat(/usr/local/etc/openssl@3/certs)][error:16000069:STORE routines::unregistered scheme:scheme=file] (-1) (SQLDriverConnect)')

安装 OpenSSL 3.0 时,可能会发生此错误。 OpenSSL 通常通过 Brew 安装,它包含 openssl、openssl@1.1 和 openssl@3 二进制文件。

若要解决此错误,请将 openssl 二进制文件的符号链接更改为 openssl@1.1:

rm -rf $(brew --prefix)/opt/openssl version=$(ls $(brew --prefix)/Cellar/openssl@1.1 | grep "1.1") ln -s $(brew --prefix)/Cellar/openssl@1.1/$version $(brew --prefix)/opt/openssl

提示 openssl@1.1未安装

brew install openssl@1.1

提示 django.db.utils.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 18 for SQL Server]SSL Provider: [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:self signed certificate] (-1) (SQLDriverConnect)')

不认自签名证书

项目最后没跑起来

还是转战 windows吧!!!!!

参考 django-pyodbc-azure · PyPI