首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在databricks 10.4LTS运行时使用pyodbc连接到sql服务器时出错

在databricks 10.4LTS运行时使用pyodbc连接到sql服务器时出错
EN

Stack Overflow用户
提问于 2022-07-18 10:15:59
回答 1查看 239关注 0票数 1

请帮帮我..。

当我试图用databricks运行时10.4LTS连接到sql服务器时,I在下面出错,而使用databricks运行时7.4LTS连接成功

错误:

代码语言:javascript
复制
OperationalError: ('08001', '[08001] [unixODBC][Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: Error code 0x2746 (10054) (SQLDriverConnect)') 

我在init脚本中使用下面的安装步骤

代码语言:javascript
复制
dbutils.fs.put("/databricks/scripts/driversqlodbc.sh", """
#!/bin/bash
sleep 10
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list 
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql17
apt-get -y install unixodbc-dev
sudo apt-get install python3-pip -y
pip3 install --upgrade pyodbc """, True)

我的连接字符串是这样的

代码语言:javascript
复制
odbc_driver= '{ODBC Driver 17 for SQL Server}'
conn = pyodbc.connect('DRIVER='+odbc_driver+';SERVER=tcp:'+server+';PORT=1433;DATABASE='+database+';UID='+db_user+';PWD='+ password,autocommit=True)

编辑**

下面是cat /etc/os-release的输出

代码语言:javascript
复制
NAME="Ubuntu"
VERSION="20.04.4 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.4 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

现在我的剧本看上去像这样

代码语言:javascript
复制
#!/bin/bash
sleep 10
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
source ~/.bashrc
sudo apt-get install -y unixodbc-dev
sudo apt-get install python3-pip -y
pip3 install --upgrade pyodbc

和连接字符串

代码语言:javascript
复制
odbc_driver= '{ODBC Driver 18 for SQL Server}'
conn = pyodbc.connect('DRIVER='+odbc_driver+';SERVER=tcp:'+server+',1433;DATABASE='+database+';UID='+db_user+';PWD='+ password,autocommit=True)
EN

回答 1

Stack Overflow用户

发布于 2022-07-19 17:06:56

也许是pyodbc版本的问题。我们也有同样的问题。对pyodbc==4.0.34的最新pyodbc更新(5天前)会引起一些问题,例如,请参阅https://github.com/mkleehammer/pyodbc/issues/1079

因此,我们在setup.py中更改了下面一行

代码语言:javascript
复制
"pyodbc~=4.0.32",

代码语言:javascript
复制
"pyodbc==4.0.32",

注意双==符号。它适用于我们的4.0.32。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73020682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档