GNU/Linux >> Linux の 問題 >  >> Linux

Linux から SQL Server に接続する方法

完全なデータベース管理者の世界では、すべてが同じになります。すべてのサーバーは同一であり、同じワークロードを実行します。管理が簡単です。しかし、そうではありません。今日、システム管理者はさまざまな環境を管理する必要があります。これは、Linux マシンから SQL クエリを実行する必要がある場合に顕著です。この投稿では、Linux から SQL Server に接続する方法を学びます!

読者ではありませんか?この関連するビデオ チュートリアルをご覧ください。 ビデオが表示されない場合広告ブロッカーが無効になっていることを確認してください。

Linux から SQL Server に接続する 1 つの方法は、Python モジュールを使用することです。しかし、その前に、まず私が作業している環境について説明しましょう。

この記事では、Ubuntu 16.04 を使用してこのタスクのデモを行い、SQL Server 2012 R2 に接続します。ただし、同じ手法を他の Linux フレーバーや SQL Server バージョンにも適用する必要があります。データベース管理者は大歓迎です!

前提条件

開始するには、いくつかの前提条件をインストールする必要があります。まず、Python から SQL Server インスタンスに接続するため、Python モジュールが必要です。 SQL に接続するための一般的な Python モジュールは、PyODBC と呼ばれます。このモジュールを使用すると、Linux 用の SQL Server ODBC ドライバーを介して、ODBC 経由で SQL データベースにクエリを実行できます。最新バージョンをインストールするには、pip を使用します (Python パッケージ マネージャー)。

> sudo pip install pyodbc

これが機能しない場合は、pip がインストールされていない可能性があります。 pip をインストールするには:

> sudo easy_install pip

次に、Python スクリプトを作成する必要があります。これを sql_server.py と呼びます . Python スクリプトを作成するには、まず空のファイルを作成します。

> touch sql_server.py

次に、選択したエディターを使用して、以下の行を追加します。シバンの後に続く Python バイナリへのパスは、これが Python スクリプトであることをインタープリターに伝えます。 import ステートメントを使用すると、pyodbc モジュール内のライブラリ メソッドを呼び出すことができます。このスクリプトを保存してください。

!/usr/bin/python
import pyodbc

Python スクリプトを作成したら、スクリプトを実行します:

> python sql_server.py

これがエラーなしで実行される場合、pyodbc モジュールは正常にインストールされています。

次に、テスト クエリを実行するコードを追加します。これを行うには、ODBC 文字列を作成します。

ODBC 文字列の作成について詳しくは、こちらのリソースをご覧ください。

ODBC 文字列は、何が含まれているかについてこだわりがあります。これを機能させる方法を理解するのに少し時間がかかりましたが、これが私のものです。以下では、ODBC 文字列を引数として connect() に渡しています。 pyodbc に含まれているメソッド モジュール。

conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=server.domain.local;PORT=1433;UID=DOMAIN\user;PWD=mypassword;DATABASE=mydatabasename;UseNTLMv2=yes;TDS_Version=8.0;Trusted_Domain=domain.local;')

ODBC 文字列の大部分は明らかですが、重要な事実の 1 つは、UID の二重バックスラッシュです。 . ODBC 文字列内のバックスラッシュをエスケープしたことを常に確認してください。また、私が使用しているオプションのいくつかはオプションです。

また、 SERVER のホスト名を使用することもできます 上で行ったように、または SQL Server の IP アドレスを使用できます。

お使いの SQL Server に合わせて、自由に追加または削除してください。

次に、T-SQL ステートメントを渡すためのカーソル オブジェクトを作成する必要があります。これは cursor() で行われます メソッド。

cursor = conn.cursor()

これで execute() を持つオブジェクトができました 以下に示すように、任意の T-SQL ステートメントを渡すために使用できるメソッドです。これにより rows が作成されます 結果のデータセットを含む変数

cursor.execute("SELECT * FROM <tablename>")
rows = cursor.fetchall()

ここで、データセットをどうするかを決定する必要があります。結果を CSV ファイルに送信したり、結果を別のデータベースに入れたり、コンテンツをコンソールに書き込んだりできます。

以下では、データセットが入力されている場合に結果をコンソールに出力しています。

if rows:
    print(rows)

データセットをコンソールに出力すると、出力があまりきれいではないことがわかります。この時点で、データベースからのデータをフォーマットまたは解析する方法を決定するのはあなた次第です。難しい部分は終わりました!

最終的には、次のようなスクリプトになります:

!/usr/bin/python
import pyodbc

conn = pyodbc.connect('DRIVER={FreeTDS};SERVER=server.domain.local;PORT=1433;UID=DOMAIN\user;PWD=mypassword;DATABASE=mydatabasename;UseNTLMv2=yes;TDS_Version=8.0;Trusted_Domain=domain.local;')

cursor.execute("SELECT * FROM <tablename>")
rows = cursor.fetchall()

if rows:
    print(rows)

まとめ

このブログ投稿では、pyodbc の使用方法を学びました。 SQL Server データ ソースに接続するための Linux 上の Python モジュール。私にとって最も困難な部分は、ODBC 文字列を理解することでしたが、それが理解できれば、順風満帆です。

Linux から接続したら、パフォーマンス カウンターを使用してパフォーマンスを向上できるかどうかを確認してみませんか?


Linux
  1. LinuxにPythonをインストールする方法

  2. Pythonスクリプトを使用してSFTPサーバーからファイルをダウンロードする方法

  3. LinuxMint20にPythonをインストールする方法

  1. ターミナルを使用してMacOSXからLinuxに接続する

  2. PuTTYを使用してWindowsからLinuxに接続する

  3. LinuxでPythonからWine dllを呼び出す方法は?

  1. ドメイン登録されていないLinuxボックスからSQuirreL SQLを使用してSQL Serverに接続する方法は?

  2. Linux シェルから Windows マシンに接続できますか?

  3. OS X (macOS) から Linux 上の x11vnc サーバーに接続するには?