繁体   English   中英

使用 python 中的 connectorx 连接 MS SQL 服务器

[英]Connecting MS SQL Server using connectorx in python

我在尝试使用 python 中的 connectorx package 连接 MSSQL Server 时遇到问题。 我已经通过 MS SQL Server Management Studio 验证了所有连接细节。 我已经安装了版本 connectorx 版本 0.2.3

import urllib.parse
import connectorx as cx
mssql_url = f"mssql://{urllib.parse.quote_plus('User ID')}:{urllib.parse.quote_plus('Password')}@Server URL:1433/Database"
query = "SELECT * FROM table"
df = cx.read_sql(mssql_url, query)

脚本的 Output:[2022-01-27T12:02:13Z 错误 tiberius::tds::stream::token] 消息=用户“用户 ID”登录失败。 代码=18456 [2022-01-27T12:02:14Z 错误 tiberius::tds::stream::token] 消息=用户“用户 ID”登录失败。 代码=18456 [2022-01-27T12:02:14Z 错误 tiberius::tds::stream::token] 消息=用户“用户 ID”登录失败。 代码=18456 [2022-01-27T12:02:16Z 错误 tiberius::tds::stream::token] 消息=用户“用户 ID”登录失败。 代码=18456 [2022-01-27T12:02:19Z 错误 tiberius::tds::stream::token] 消息=用户“用户 ID”登录失败。 代码=18456 [2022-01-27T12:02:26Z 错误 tiberius::tds::stream::token] 消息=用户“用户 ID”登录失败。 代码=18456 [2022-01-27T12:02:38Z 错误 tiberius::tds::stream::token] 消息=用户“用户 ID”登录失败。 code=18456 Traceback(最近一次调用最后):文件“”,第 1 行,在文件“ /app/path/xxxxxxxx/dev/lib/python3.8/site-packages/connectorx/init .py”中,第 118 行,在 read_sql 结果 = _read_sql( RuntimeError: Timed out in bb8

我正在使用 mysql.connector,它对我很有效:

import pandas as pd
import mysql
import mysql.connector

host = "1.1.1.1:1234"
user = "myusername"; 
password = "mypassword"
database = "mydb"


def load_db():
connection = mysql.connector.connect(host=host, user=user, password=password, database=database)
cursor = connection.cursor()
cursor.execute("SELECT * FROM mytable")
field_names = [i[0] for i in mycursor.description]
result = cursor.fetchall()
dataframe = pd.DataFrame(result, columns=field_names)

我认为这行不通,那是针对 MySQL,你试过这个吗:

我从这里得到: https://qastack.id/programming/33725862/connecting-to-microsoft-sql-server-using-python

import pyodbc 
cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                      "Server=server_name;"
                      "Database=db_name;"
                      "Trusted_Connection=yes;")


cursor = cnxn.cursor()
cursor.execute('SELECT * FROM Table')

for row in cursor:
    print('row = %r' % (row,))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM