hka*_*kay 4 python sql-server pyodbc remote-server
我正在尝试将 Python 连接到我们的远程 SQL Server,但我没有得到它。以下是我使用的代码。
server = 'server,1433'
database = 'db'
username = 'username'
password = 'pw'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute('SELECT top 1 * FROM db.dbo.t_location')
for row in cursor:
print(row)
Run Code Online (Sandbox Code Playgroud)
我们有 2 台服务器。一种是数据库服务器,但我使用连接到数据库服务器的 SQL 应用程序服务器。这是我收到的错误。我尝试了一个星期,但我不确定我在这里错过了什么。任何帮助,将不胜感激
操作错误: ('08001', '[08001] [Microsoft][适用于 SQL Server 的 ODBC 驱动程序 17]TCP 提供程序: 没有已知的此类主机。\r\n (11001) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server 驱动程序 17]登录超时已过期 (0);[08001] [Microsoft][SQL Server ODBC 驱动程序 17]建立与 SQL Server 的连接时出现网络相关或实例特定的错误。未找到服务器或无法访问。请检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。(11001)')
添加:
connection_str = ("Driver={SQL Server Native Client 11.0};"
"Server= 10.174.124.12,1433;"
#"Port= 1433;"
"Database=AAD;"
"UID=dom\user;"
"PWD=password;"
)
Run Code Online (Sandbox Code Playgroud)
连接 = pyodbc.connect(connection_str) data = pd.read_sql("使用 (nolock) 从 dbo.t_location 选择顶部 1 *;",connection)
我使用了上面的代码,现在我看到了这个错误。貌似可以用,但是登录失败。通常,一旦我输入凭据登录远程桌面,我就必须在 SSMS 中使用 Windows 身份验证。
('28000', "[28000] [Microsoft][SQL Server Native Client 11.0][SQL Server]用户 'dom\user' 登录失败。(18456) (SQLDriverConnect); [28000] [Microsoft][SQL Server Native客户端 11.0][SQL Server]用户“dom\user”登录失败。(18456)")
回答:
我很高兴终于找到了使用 pymssql 的解决方案。我不知道 pyodbc 不起作用,但我确信我一定做错了什么。我使用下面的代码使用 Python 从远程 SQL 服务器获取数据。
import pymssql
conn = pymssql.connect(
host=r'10.174.124.12',
user=r'dom\user',
password=r'password',
database='db'
)
cursor = conn.cursor(as_dict=True)
cursor.execute('Select top 4 location_id, description from t_location with (nolock)')
data = cursor.fetchall()
data_df = pd.DataFrame(data)
cursor.close()
Run Code Online (Sandbox Code Playgroud)
此时忽略我的代码。我仍然需要做一些清理工作,但是这段代码可以工作。
最后为了回答我的问题,我不得不使用有效的 pymssql 。我不必输入让我感到困惑的端口号。感谢大家抽出时间来回答。
import pymssql
conn = pymssql.connect(
host=r'10.174.124.12',
user=r'dom\user',
password=r'password',
database='db'
)
cursor = conn.cursor(as_dict=True)
cursor.execute('Select top 4 location_id, description from t_location with (nolock)')
data = cursor.fetchall()
data_df = pd.DataFrame(data)
cursor.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13208 次 |
| 最近记录: |