作为一个云计算领域的专家,我可以帮助您解决这个问题。
首先,要在Linux上使用Python连接到MS SQL Server,需要使用一个库来实现。一个常用的库是pyodbc
。您可以使用以下命令安装它:
pip install pyodbc
接下来,您需要安装一个ODBC驱动程序来连接到MS SQL Server。您可以使用FreeTDS
驱动程序,它是一个开源的驱动程序,可以在Linux上使用。您可以使用以下命令安装它:
sudo apt-get install freetds-dev freetds-bin
然后,您需要配置/etc/freetds/freetds.conf
文件,以便它指向您的MS SQL Server。以下是一个示例配置:
[global]
tds version = 7.0
[myserver]
host = myserver.example.com
port = 1433
tds version = 7.0
接下来,您可以使用以下代码来连接到MS SQL Server:
import pyodbc
server = 'myserver.example.com'
database = 'mydatabase'
username = 'myusername'
password = 'mypassword'
cnxn_string = f"DRIVER={{FreeTDS}};SERVER={server};DATABASE={database};UID={username};PWD={password}"
cnxn = pyodbc.connect(cnxn_string)
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM mytable")
row = cursor.fetchone()
while row:
print(row)
row = cursor.fetchone()
请注意,您需要将myserver.example.com
、mydatabase
、myusername
和mypassword
替换为您自己的MS SQL Server的详细信息。
最后,如果您想要在Linux上使用Windows凭据,您可以使用wine
和winbind
。wine
是一个兼容层,可以让您在Linux上运行Windows应用程序。winbind
是一个身份验证和授权服务,可以让您在Linux上使用Windows凭据。您可以使用以下命令安装它们:
sudo apt-get install wine winbind
然后,您可以使用以下命令来配置winbind
:
sudo nano /etc/samba/smb.conf
在[global]
部分中,您需要添加以下行:
netbios name = MYDOMAIN
workgroup = MYWORKGROUP
security = domain
然后,您需要重启winbind
服务:
sudo service winbind restart
现在,您可以使用以下代码来连接到MS SQL Server,并使用Windows凭据进行身份验证:
import pyodbc
server = 'myserver.example.com'
database = 'mydatabase'
trusted_connection = 'yes'
cnxn_string = f"DRIVER={{FreeTDS}};SERVER={server};DATABASE={database};Trusted_Connection={trusted_connection}"
cnxn = pyodbc.connect(cnxn_string)
cursor = cnxn.cursor()
cursor.execute("SELECT * FROM mytable")
row = cursor.fetchone()
while row:
print(row)
row = cursor.fetchone()
请注意,您需要将myserver.example.com
、mydatabase
和MYDOMAIN
、MYWORKGROUP
替换为您自己的MS SQL Server的详细信息和域名。
希望这个答案能够帮助您解决问题。如果您有任何其他问题,请随时告诉我。
领取专属 10元无门槛券
手把手带您无忧上云