我正在尝试将我的 Azure 数据库连接到我的 Jupyter Notebook Python 脚本,但我不断收到一条错误消息,提示无法建立连接。
这是我的代码:
# Create the SQLAlchemy engine
connection_string = "Driver=/usr/local/lib/libmsodbcsql.18.dylib;Server=tcp:XXX.database.windows.net,1433;Database=XXX;Uid=XXX;Pwd={XXX};Encrypt=yes;TrustServerCertificate=yes;Connection Timeout=30;ssl_version=TLSv1.2"
engine = sqlalchemy.create_engine(f"mssql+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}")
这是我收到的错误:
Error: (pyodbc.OperationalError) ('08001', '[08001] [Microsoft][ODBC Driver 18 for SQL Server]Client unable to establish a connection (0) (SQLDriverConnect)')
(Background on this error at: http://sqlalche.me/e/14/e3q8)
我使用的是 Mac。我不知道这是否是我的数据库设置的错误,但我尝试弄乱设置并不断收到相同的错误。
错误:(pyodbc.OperationalError) (‘08001’,‘[08001] [Microsoft][ODBC Driver 18 for SQL Server]客户端无法建立连接 (0) (SQLDriverConnect)’)
当
SERVER
中的Connection String
不正确时,就会出现上述错误。我使用正确的凭据在我的计算机上尝试,它连接成功,如下面的代码所示:
import urllib
import sqlalchemy
connection_string = (
"DRIVER={ODBC Driver 18 for SQL Server};"
"SERVER=tcp:*****.database.windows.net,1433;"
"DATABASE=sampleDB;"
"UID=admin6391;"
"PWD=******;"
"Encrypt=yes;"
"TrustServerCertificate=no;"
"Connection Timeout=30;"
)
engine = sqlalchemy.create_engine(f"mssql+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}")
connection = engine.connect()
try:
print("Connection successful!")
table_name = 'sampleTable'
select_query = sqlalchemy.sql.text(f"SELECT * FROM {table_name}")
result = connection.execute(select_query)
rows = result.fetchall()
for row in rows:
print(row)
except Exception as e:
print(f"Error: {e}")
finally:
if connection:
connection.close()
输出:
Connection successful!
(1, 'Pavan', 'Balaji', Decimal('31000.0000'), 'Hyderabad')
(2, 'Sai', 'Venkatesh', Decimal('35000.0000'), 'Visakhapatnam')