ホームページ  >  記事  >  運用・保守  >  Linux に ODBC をインストールして SQLServer データベースに接続する方法

Linux に ODBC をインストールして SQLServer データベースに接続する方法

PHPz
PHPz転載
2023-05-16 12:19:111439ブラウズ

オペレーティング システム: Centos7.2

1. ODBC インストール パッケージをダウンロードします

unixODBC-2.3.9.tar.gz

freetds-1.3.9.tar . gz

2. インストール手順

ステップ 1: 2 つのインストール パッケージをサーバーにアップロードします

ステップ 2: unixODBC をインストールし、最初にこれをインストールし、次に freetds をインストールします

注: ここでインストール順序が矛盾している場合、libtdsodbc.so ドライバー ファイルは生成されません (非常に重要)

2.1. 最初にオペレーティング システムに gcc をインストールします:

yum install gcc

2.2. インストール odbc

tar -xvf unixODBC-2.3.9.tar.gz
cd unixODBC-2.3.9
./configure --prefix=/usr/local/unixODBC
make
make install

2.3. freetds

tar -xvf freetds-1.3.9.tar.gz
cd freetds-1.3.9
./configure --prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC/
make
make install

2.4. freetds ドライバーの設定

設定ファイルのディレクトリ: /usr/local/freetds/etc/freetds.confファイルの最後に次の内容を追加します。tds バージョンはデフォルト構成を参照します。デフォルトは 7.3 です。ホストとポートを通常の SQLServer アドレスに変更するだけです。

[SQLServer]
    host = serverip
    port = 1433
    tds version = 7.3

2.5.構成は正しいです。

/usr/local /freetds/bin/tsql -S SQLServer -U SQLServer に接続するためのユーザー名 (-S は構成された TDS サービス名を指定し、-U は TDS サービスにログインするためのユーザー名を指定します)接続が成功すると、ドライバーの構成が正しいことが証明されます。接続エラーが発生した場合は、tds バージョンの設定が間違っている可能性がありますので、値を変更して再接続してみてください。

/usr/local/freetds/bin/tsql -S SQLServer -U sa
Password: 
locale is "zh_CN.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>

2.6、unixODBC の設定場所と場所を示します。 unixodbc のデータベース ドライバー データベースに接続するために必要な認証情報。以下の設定情報の具体的な値を実際の状況に応じて変更し、/usr/local/unixODBC/etc/odbcinst.ini

[FreeTDS]                                         #驱动名称
Description=FreeTDS Driver
Driver=/usr/local/freetds/lib/libtdsodbc.so     #驱动位置

/usr/local/unixODBC/etc/ にドライバを設定します。 odbc.ini

[mssql]  #DSN名称
Description=sqlserver connection
Driver=FreeTDS    #上面配置好的驱动名称
TDS_Version=7.3   #TDS驱动版本
TRACE=On    #是否输出日志信息
TraceFile=stderr  #日志信息的位置
Server=serverip  #数据库网络地址
Port=1433       #数据库端口
User=name       #登录用户名
Password=pwd     #密码
Database=db name  #连接的数据库名称

2.7. データベースが接続できるかどうかをテストします

/usr/local/unixODBC/bin/isql mssql name pwd
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> select * from sys.objects
+---------------------------------------------------------------------------------------------------------------------------------+------------+-------------+------------+-----------------+-----+-------------------------------------------------------------+------------------------+------------------------+--------------+-------------+--------------------+
| name                                                                                                                            | object_id  | principal_id| schema_id  | parent_object_id| type| type_desc                                                   | create_date            | modify_date            | is_ms_shipped| is_published| is_schema_published|

注: 接続データベース名は設定ファイルですでに設定されているため、クエリ時にデータベース名を使用しないでください。 SQL、それ以外の場合はエラーが報告されます。

2.8. データベースに接続するためのシェル スクリプト

SQL="/usr/local/unixODBC/bin/isql mssql sa 123"
i_sql=" exec dbo.bulkinsert 10,20,'dbo.stu';    "
echo $i_sql
result=`echo $i_sql|$SQL`

方法 2:

SQL="select * from Student"
EMPLOYEES=`isql mssql sa 123 <<EOF
   $SQL
   go
   EOF

方法 3:

echo "$SQL" > $TMP/sql.$$
EMPLOYEES=`isql mssql sa 123 -i $TMP/sql.$$`
rm $TMP/sql.$$

2.9. コマンド実行を呼び出します。 SQL Server がインストールされているマシン ストアド プロシージャ

osql.exe -S ip -U sa -P 123 -d WAI -Q "exec dbo.bulkinsert %start%,%end%,stu

以上がLinux に ODBC をインストールして SQLServer データベースに接続する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。