【发布时间】:2019-07-30 08:19:00
【问题描述】:
我想用 python 将数据从树莓派插入到 sql server 中。 我尝试使用 pypyodbc 但它无法正常工作。 你能指导我使用女巫模块吗?
import pyodbc
conn = pyodbc.connect(
'DRIVER={SQL Server Native Client 11.0};'
'SERVER=server;'
'Integrated_Security=false;'
'Trusted_Connection=no;'
'UID=pi;'
'PWD=pi;'
'DATABASE= database'
)
cursor = conn.cursor()
cursor.execute('SELECT * FROM database.table')
for row in cursor:
print(row)
yodbc.InterfaceError: ('28000', '[28000] [Microsoft][SQL Server Native Client 11.0][SQL Server]用户\'pi\'登录失败。(18456) (SQLDriverConnect); [28000] [Microsoft][SQL Server Native Client 11.0][SQL Server]无法打开登录请求的数据库“数据库”。登录失败。(4060); [28000] [Microsoft][SQL Server Native Client 11.0]无效的连接字符串属性(0);[28000][Microsoft][SQL Server Native Client 11.0][SQL Server]用户\'pi\'登录失败。(18456);[28000][Microsoft][SQL Server Native Client 11.0][SQL服务器]无法打开登录请求的数据库“数据库”。登录失败。(4060);[28000][Microsoft][SQL Server Native Client 11.0]无效的连接字符串属性(0)')
【问题讨论】:
-
确保在sql server area configuration 中启用了通过 tcp/ip 和命名管道的连接。
-
@ManishMishra 我设置了 sql server 。我可以使用我设置的 sql 凭据从同事计算机连接。从外部可以看到服务器,从服务器端看起来一切都很好。我遇到的问题是我无法通过 python 从 pi 连接。
-
好吧,您粘贴的问题,即
Login failed for user \'pi\',说明访问有问题。检查您是否可以通过相同的凭据通过管理工作室登录,如果可以,那么它肯定是命名管道访问。还要确保重新启动您的实例服务以进行任何更改 -
我看到
server是服务器,数据库是database。这些是正确的吗?无论如何,删除database文本之前的空格。检查您是否能够直接通过 SQL Server 客户端使用此连接详细信息登录。 -
@ManishMishra 我可以通过 ..**.**\SQLEXPRESS 在 ssms 上使用您觉得不错的凭据进行连接?跨度>
标签: python sql sql-server python-3.x pypyodbc