网站制作学习网Python→正文:mac python 连接ms sql server
字体:

mac python 连接ms sql server

Python 2024/3/12 21:19:38  点击:不统计

http://%77w%77%2E%66%6F%72%61%73%70%2E%63n网站制作学习
 在window python,连接ms sql server 2008 很容易,在mac os 下,经过了几次努力才成功,把过程记录下来

 
1. 首次我采用的是 pyodbc 扩展安装连接ms sql server 
在python 安装扩展
pip install pyodbc
 
2. 查看目前支持的 ms sql 驱动
输入 python回车 ,然后运行下面两个数据
>>> import pyodbc
>>> print(pyodbc.drivers())
 
输出结果[]
 
3. 开始安装 mac python 对应的ms sql server 扩展驱动,我们看官方连接
 
https://learn.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/install-microsoft-odbc-driver-sql-server-macos?view=sql-server-ver15
或者:https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX
 
我们安装 'ODBC Driver 17 for SQL Server' 驱动 在mac os 命令行运行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools
 
4. 安装完成,重新启动命令行
输入 python回车 ,然后运行下面两个数据
>>> import pyodbc
>>> print(pyodbc.drivers())
现在就有了 
[ 'ODBC Driver 17 for SQL Server']
 
5. 修改驱动配置
(1)vim /usr/local/etc/odbcinst.ini
在 [ODBC Driver 17 for SQL Server] 下面加上
sslverify=false

(2)将 本地 /usr/local/opt/openssl 软连接到 1.1版本
ln -s /usr/local/Cellar/openssl@1.1/1.1.1.w /usr/local/opt/openssl
上面路径根据openssl 本地版本略有不同
 
为什么这样做呢?,因为默认会使用 ssl 安全连接,如果不设置会出现
('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:0A000102:SSL routines::unsupported protocol] (-1) (SQLDriverConnect)')
 
 
6. 写python 代码测试 ms sql server 数据库连接
import pyodbc

# 连接数据库
conn = pyodbc.connect(
'DRIVER={ODBC Driver 17 for SQL Server};'
'SERVER=192.168.5.11;'
'DATABASE=test;'
'UID=sa;'
'PWD=123123;'
)
# 创建游标
cursor = conn.cursor()
# 执行 SQL 查询
cursor.execute("SELECT top 1 * FROM test_table")
# 获取查询结果
rows = cursor.fetchall()
# 打印结果
for row in rows:
print(row)
# 关闭游标和连接
cursor.close()
conn.close()
 
7. 这里补充一下,原来安装最新的18版本,但是 在18 版本一直出现 
('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: [error:0A000102:SSL routines::unsupported protocol] (-1) (SQLDriverConnect)')
的问题,不管如何配置都不行,于是降低到17 是可行的。
 
以上就是mac os python连接ms sql server 2008R2 的过程。


http://%77%77%77%2E%66%6F%72%61%73%70%2E%63%6E

·上一篇:ModuleNotFoundError: No module named 'readline' >>    ·下一篇:RuntimeError: Your system has an unsupported version of sqlite3. Chrom >>
推荐文章
最新文章