我正在尝试连接到一个需要代理(socks)才能连接的数据库,如果我手动使用代理连接,我可以连接上,但我需要让脚本连接到机器的代理(socks)才能执行这个SELECT
脚本
import socket
import socks
import requests
import pymssql
socks.set_default_proxy(socks.SOCKS5, "138.34.133.155", 1080, True, 'user','password')
socket.socket = socks.socksocket
server = '172.43.56.89'
username = 'user'
password = 'password'
database = 'dbname'
conn = requests.get(pymssql.connect(host=server,user=username,password=password,database=database))
cursor = conn.cursor()
cursor.execute("SELECT column FROM table")
row = cursor.fetchall()
conn.close()
for i in row:
print(i)
输出
此错误显示了在尝试连接数据库时发生的问题。可能是因为服务器不可用或不存在,或者由于网络库错误而导致连接失败。请检查输入参数是否正确,并确保数据库服务器可用。Traceback (most recent call last): File "connection.py", line 15, in conn = requests.get(pymssql.connect(host=server,user=username,password=password,database=database)) File "src\pymssql.pyx", line 642, in pymssql.connect pymssql.OperationalError: (20009, 'DB-Lib错误消息 20009,严重性 9:\n无法连接:自适应服务器不可用或不存在(172.43.56.89:1433)\nUnknown error中的Net-Lib错误(10060)\n')
pymssql
是使用 Cython 实现的。它不使用socket
模块。因此,socks
模块无法为pymssql
工作。 - blhsing