无法使用Python连接到Azure SQL Server [英] Cannot connect to the Azure SQL Server with python

查看:0
本文介绍了无法使用Python连接到Azure SQL Server的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我多次尝试连接到Azure SQL数据库。

我使用了以下代码:

import pyodbc
sqlConnection = pyodbc.connect(
                " Driver={ODBC Driver 17 for SQL Server};"
                "Server=tcp:mftaccountinghost.database.windows.net,1433;"
                "Database=mft_accounting;Uid=localhost;Pwd=#####;"
                "Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;");

cursor = sqlConnection.cursor()
cursor.execute("select * from dbo.error_bills_catch")
for row in cursor:
    print(cursor)


firstColumn = row[0]


cursor.close()

sqlConnection.close()

我收到的错误如下:pyodbc.OperationalError:(‘08001’,‘[08001][微软][用于SQL Server的ODBC驱动程序17]客户端无法建立连接(0)(SQLDriverConnect)’)

有人能帮忙吗?

这是我的连接字符串:DRIVER={ODBC DRIVER 13 FOR Sql Server};Server=tcp:mftaccountinghost.database.windows.net,1433;Database=mft_accounting;Uid=localhost;Pwd={your_password_here};Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;

我使用MacOS并多次尝试重新安装驱动程序,但仍然没有结果。

谢谢。

推荐答案

错误消息Client unable to establish connection表示网络有问题。

可能的原因如下:

  1. 错误的服务器地址。

  2. 您的本地网络问题。例如,您的本地网络可能会禁止端口1433上的流量。

  3. 您的IP未添加到Azure SQL防火墙允许列表。查看教程:Use the Azure portal to manage server-level IP firewall rules


更新

我检查了我的Mac,并获得了成功。以下是我的步骤:

  1. 安装ODBC驱动程序
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install msodbcsql mssql-tools
  1. 在python中安装pyodbc模块
pip install pyodbc
  1. 将我的IP添加到Azure门户的允许列表

  2. 脚本:

import pyodbc

cnxn = pyodbc.connect(
    "Driver={ODBC Driver 17 for SQL Server};"
    "Server=tcp:jackdemo.database.windows.net,1433;"
    "Database=jackdemo;"
    "Uid=jack;"
    "Pwd=************;"
    "Encrypt=yes;"
    "TrustServerCertificate=no;"
    "Connection Timeout=30;")

cursor = cnxn.cursor()
cursor.execute("select * from Users")
row = cursor.fetchone()
while row:
    print(str(row[0]) + " " + str(row[1]))
    row = cursor.fetchone()

结果:

我已成功从表USERS中获取所有用户:

这篇关于无法使用Python连接到Azure SQL Server的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆