1. 确认SQL Server的连接信息
在Linux系统下连接SQL Server数据库,首先需要确认要连接的SQL Server的连接信息,包括SQL Server的IP地址、端口号、以及登录数据库的用户名和密码等。确认好连接信息后,就可以通过一下三种方式之一来连接SQL Server。
2. 使用FreeTDS+ODBC连接SQL Server数据库
2.1 安装FreeTDS和ODBC驱动
FreeTDS是Linux系统下连接SQL Server所需的驱动,它可以将SQL Server的TDS协议转换成ODBC协议,使得Linux下的ODBC连接得以实现。因此,我们需要先安装FreeTDS。此外,我们还需要安装ODBC驱动,以便在Linux系统中使用ODBC接口连接SQL Server。
以Ubuntu为例,可以通过以下命令安装FreeTDS和ODBC驱动:
sudo apt-get install freetds-dev unixodbc-dev
2.2 配置FreeTDS
安装完成FreeTDS和ODBC驱动后,我们需要配置FreeTDS,以便让它知道要连接哪个SQL Server和数据库。在Linux系统中,FreeTDS的配置文件为/etc/freetds/freetds.conf。我们可以通过编辑这个文件的方式来配置FreeTDS。下面是一个示例配置:
[global]
tds version = 7.2
[mssql]
host = 192.168.0.100
port = 1433
tds version = 7.2
以上配置将SQL Server的IP地址设置为192.168.0.100,端口号为1433,使用的TDS协议版本为7.2。这里将这个配置保存为一个名为mssql的连接信息,方便在后续的代码中使用。
2.3 配置ODBC
安装完成FreeTDS和ODBC驱动后,我们还需要配置ODBC,以便让ODBC知道要使用哪个驱动。在Linux系统中,ODBC的配置文件为/etc/odbc.ini。我们可以通过编辑这个文件的方式来配置ODBC。下面是一个示例配置:
[mssql]
Description = SQL Server
Driver = FreeTDS
Database = dbname
Servername = mssql
UserName = sa
Password = mypassword
以上配置将ODBC连接到名为mssql的SQL Server,使用的ODBC驱动为FreeTDS,连接的数据库名为dbname,登录用户名为sa,密码为mypassword。这里同样将这个连接信息保存为一个名为mssql的连接信息,方便在后续的代码中使用。
2.4 编写连接代码
通过以上的配置,我们已经可以使用ODBC协议连接到SQL Server了。下面是一个示例代码:
import pyodbc
conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=mssql;DATABASE=dbname;UID=sa;PWD=mypassword')
cursor = conn.cursor()
# 执行SQL查询,结果存储在rows中
cursor.execute('SELECT * FROM table')
rows = cursor.fetchall()
# 打印结果
for row in rows:
print(row)
以上代码使用pyodbc库连接到名为mssql的SQL Server,使用的ODBC驱动为FreeTDS,连接的数据库名为dbname,登录用户名为sa,密码为mypassword。我们使用cursor来执行SQL查询,并将输出打印到控制台。
3. 使用SQLAlchemy连接SQL Server数据库
3.1 安装SQLAlchemy
首先,我们需要安装SQLAlchemy库。可以通过以下命令来进行安装:
pip install sqlalchemy
3.2 编写连接代码
使用SQLAlchemy连接到SQL Server,只需要在连接字符串中指定使用的ODBC驱动和连接信息。下面是一个示例代码:
import sqlalchemy as sa
# 连接字符串
conn_str = 'mssql+pyodbc://sa:mypassword@mssql/dbname?driver=FreeTDS'
# 连接到SQL Server,返回一个引擎对象
engine = sa.create_engine(conn_str)
# 连接数据库,返回一个连接对象
conn = engine.connect()
# 执行SQL查询,结果存储在rows中
rows = conn.execute('SELECT * FROM table').fetchall()
# 打印结果
for row in rows:
print(row)
# 关闭连接
conn.close()
以上代码使用SQLAlchemy连接到名为mssql的SQL Server,使用的ODBC驱动为FreeTDS,连接的数据库名为dbname,登录用户名为sa,密码为mypassword。我们使用engine和conn来连接到数据库并执行SQL查询,并将输出打印到控制台。
4. 使用ODBC连接SQL Server数据库
4.1 安装unixODBC和ODBC驱动
如果不想使用FreeTDS+ODBC或SQLAlchemy来连接SQL Server,也可以直接使用ODBC协议进行连接。此时,我们需要先安装unixODBC和ODBC驱动。以Ubuntu为例,可以通过以下命令安装:
sudo apt-get install unixodbc unixodbc-dev libodbc1 libodbc1-dev
4.2 配置ODBC
安装完成unixODBC和ODBC驱动后,我们还需要配置ODBC。在Linux系统中,ODBC的配置文件为/etc/odbc.ini和/etc/odbcinst.ini。我们可以通过编辑这两个文件中的内容来配置ODBC。下面是一个示例配置:
[mssql]
Driver = FreeTDS
Description = SQL Server
Trace = Yes
TraceFile = /tmp/sql.log
Database = dbname
Servername = 192.168.0.100
UserName = sa
Password = mypassword
以上配置将ODBC连接到IP地址为192.168.0.100的SQL Server,使用的ODBC驱动为FreeTDS,连接的数据库名为dbname,登录用户名为sa,密码为mypassword。此外,该配置还开启了ODBC的Trace功能,将SQL语句的执行情况记录到/tmp/sql.log文件中。这里同样将这个连接信息保存为一个名为mssql的连接信息,方便在后续的代码中使用。
4.3 编写连接代码
通过以上的配置,我们已经可以使用ODBC协议连接到SQL Server了。下面是一个示例代码:
import pyodbc
# 连接字符串
conn_str = 'DSN=mssql;UID=sa;PWD=mypassword'
# 连接到SQL Server,返回一个连接对象
conn = pyodbc.connect(conn_str)
# 执行SQL查询,结果存储在rows中
cursor = conn.cursor()
cursor.execute('SELECT * FROM table')
rows = cursor.fetchall()
# 打印结果
for row in rows:
print(row)
# 关闭连接
conn.close()
以上代码使用pyodbc库连接到名为mssql的SQL Server,使用的ODBC驱动为FreeTDS,连接的数据库名为dbname,登录用户名为sa,密码为mypassword。我们使用cursor来执行SQL查询,并将输出打印到控制台。