ไม่สามารถเชื่อมต่อกับ MS SQL ด้วย pyodbc


2

ฉันใช้เวลาหลายชั่วโมงในการพยายามทำภารกิจง่าย ๆ ฉันมีรหัสหลามที่ฉันเคยเรียกใช้ใน 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
tolos

คำตอบ:


1

หากคุณกำลังพยายามเชื่อมต่อกับ SQL Server จากเครื่อง linux ของคุณฉันขอแนะนำให้คุณติดตามลิงค์นี้https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-python-simple-ubuntu- ลินุกซ์ /

สิ่งนี้ใช้ไดร์เวอร์ python ตัวอื่น pymssql ซึ่งใช้ FreeTDS เพื่อเชื่อมต่อกับ SQL Server แจ้งให้เราทราบหากสิ่งนี้ช่วยได้

สุดยอด
พบกัน


เฮ้เจอกัน คุณอาจต้องการอัปเดตคำแนะนำของ Ubuntu ในหน้านี้เนื่องจากดูเหมือนว่าจะไม่ทำงานสำหรับการเชื่อมต่อ SSL กับ Ubuntu 16.04 และ pymssql รุ่นปัจจุบันอีกต่อไป หากคุณสนใจที่ผมได้โพสต์สูตรของตัวเองสำหรับอูบุนตู 16.04 และ pymssql 2.1.3 ที่นี่
Gord Thompson

จริง ฉันจะทำอย่างนั้น.
meet-bhagdev

1

เมื่อเร็ว ๆ นี้เราได้พัฒนาและทดสอบไดรเวอร์ SQL Server ODBC ด้วย pyODBC 3.0.7 บน Python 3.3 และการเชื่อมต่อก็ประสบความสำเร็จ ทำงานได้ดีทั้งหมด

ลองดาวน์โหลดไดรเวอร์ pyODBC ล่าสุดhttps://github.com/mkleehammer/pyodbc และไดรเวอร์SQL Server ODBC
นี้มีตัวอย่างสตริงการเชื่อมต่อในเอกสารประกอบ คุณอาจใช้มัน


ฉันพยายามเชื่อมต่อจาก ubuntu ไปยัง oracle db ทดสอบกับ pyodbc - มันใช้งานได้ คำแนะนำที่ติดตามบนgithub.com/mkleehammer/pyodbc/wiki/ …
baltasvejas

0

ฉันเชื่อมต่อกับฐานข้อมูลอย่างสม่ำเสมอโดยใช้ python สตริงการเชื่อมต่อของฉันเป็นดังนี้:

ConnectionString = 'DSN = MyDSN'

DSN ย่อมาจากData source Nameและรายละเอียดจะถูกเก็บไว้ในodbc.iniไฟล์ในรูปแบบที่คุณใช้:

[MyDSN]

ไดร์เวอร์ = FreeTDS

คำอธิบาย = การเชื่อมต่อ ODBC ผ่าน FreeTDS

ติดตาม = ไม่

ชื่อเซิร์ฟเวอร์ = sqlserver

ฐานข้อมูล = Market

USER = DBuser

รหัสผ่าน = yourpwd

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.