Linux下如何连接SQLServer数据库

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查询,并将输出打印到控制台。

数据库标签