ฉันใช้เวลาหลายชั่วโมงในการพยายามทำภารกิจง่าย ๆ ฉันมีรหัสหลามที่ฉันเคยเรียกใช้ใน windows และเข้าถึงฐานข้อมูล MS SQL บน windows server 2008 ฉันตั้งค่าเซิร์ฟเวอร์ ubuntu และต้องการเรียกใช้สคริปต์นี้ในเซิร์ฟเวอร์นี้ หลังจากติดตั้ง pyodbc แล้ว freetds และแพ็คเกจอื่น ๆ ฉันยังไม่สามารถเชื่อมต่อกับฐานข้อมูลได้ สตริงการเชื่อมต่อของ windows ที่ฉันใช้อยู่คือ:
connectionString='DRIVER={SQL Server};SERVER=IP;DATABASE=Market;UID=usr;PWD=psw
หลังจากการค้นคว้ามากฉันลงเอยด้วยไฟล์การเชื่อมต่อสามไฟล์ odbc.ini odbcinst.ini และ freetds.conf และพวกเขามองตามลำดับดังนี้:
ODBC.INI:
[sqlserverdatasource] ไดรเวอร์ = คำอธิบาย FreeTDS = การเชื่อมต่อ ODBC ผ่านการติดตาม FreeTDS = ไม่มีชื่อเซิร์ฟเวอร์ = ฐานข้อมูล sqlserver = ตลาด;
ODBCINST.INI
[FreeTDS] คำอธิบาย = ไดรเวอร์ TDS (Sybase / MS SQL) ไดรเวอร์ = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so การติดตั้ง = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so CPTimeout = CPReuse = FileUsage = 1
freetds.conf
[sqlserver] host = 10.23.11.10; พอร์ต = 1433; tds version = 5.0
ตอนนี้ฉันพยายามทดสอบการเชื่อมต่อกับสิ่งต่อไปนี้
tsql -S sqlserver
แต่ฉันได้รับข้อผิดพลาดดังต่อไปนี้
ข้อผิดพลาด 20017 (ความรุนแรง 9): EOF ที่ไม่คาดคิดจากข้อผิดพลาดเซิร์ฟเวอร์ OS 115, "การดำเนินการอยู่ในระหว่างดำเนินการ" ข้อผิดพลาด 20002 (ความรุนแรง 9): การเชื่อมต่อ Adaptive Server ล้มเหลว
ฉันคิดว่ามันใช้เวลาสองสามนาทีในการทำให้มันใช้งานได้ แต่ฉันเสียเวลาไปหลายชั่วโมง ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างลึกซึ้ง ขอขอบคุณ.
PORT=1433
และTDS_Version=7.2