UbuntuからのMSSQL接続


10

UbuntuからMSSQL接続を行うための簡単で完全なチュートリアルが必要です。

FreeTDSとUnixODBCをインストールしたと思いますが、設定が非常に複雑なので、問題を理解できませんでした。

私はこのチュートリアルに従いました:https : //github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu

しかし、私は失敗しました。

root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~# 

編集:

この前は、「/ etc / odbcinst.ini」と「/etc/odbc.ini」は空でした。

これらの行を/etc/odbcinst.iniに追加しました。

[FreeTDS]

Description     = TDS driver (Sybase/MS SQL)

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

CPTimeout       =

CPReuse         =

FileUsage       = 1

これらの行を/etc/odbc.iniに追加しました。

[project_development]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername      = developer
Database        = project_development

[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test

[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production

「/etc/freetds/freetds.conf」には最初から何も変更していません。

それでも、何も変わっていません。


ODBCファイル(/etc/odbc.ini)にエントリを作成しましたか?また、「/ etc / odbcinst.ini」ファイルでドライブを確認します
vembutech '28年

これらのファイルはどちらも空です。正確にはどうすればよいですか?リンクや詳細を共有できますか?
mertyildiran、2015年

あなたがたどったリンクにある「Configure UnixODBC」のステップを見逃したと思います。これらの2つのファイルをgithub.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/…のように更新して、問題が解決したかどうかを確認してください。
vembutech 2015年

何も変更されていません。上記の質問を編集しました
mertyildiran、2015年

回答:


11

ここにステップバイステップの説明があります(ここにあります)

まず、unixODBCをインストールします。

sudo apt-get install unixodbc unixodbc-dev

次の(おそらく必要な)パッケージもインストールしました。

sudo apt-get install tdsodbc php5-odbc

次に、FreeTDSをダウンロード、展開、コンパイル、インストールします(警告、URLは変更される可能性があります)。

cd /usr/local

wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar xvfz freetds-stable.tgz
cd freetds-0.82
./configure --enable-msdblib --with-tdsver=8.0 --with-unixodbc=/usr
make
make install
make clean

Telnet経由でSQL Serverインスタンスへの接続を試みます。

telnet 192.168.0.1 1433

tsqlツールを使用して、接続をテストします。

tsql -S 192.168.0.1 -U devuser

これにより、パスワードの入力が求められます。その後、この美しいサインが表示されることを期待しないでください。

1>

それがうまくいったなら、(コーディング)パーティーを開くことをお勧めします。次は設定です。FreeTDS構成ファイルを開きます。/usr/local/etc/freetds.conf

ファイルの下部に次のエントリを追加します。「MSSQL」というデータソース名(DSN)を設定しています。

[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0

ここで、ODBC構成ファイルを開きます:/usr/local/etc/odbcinst.ini

最後に、次のMSSQLドライバーエントリ(FreeTDS)を追加します。

[FreeTDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

次に、最後に、ODBC内のodbc.iniファイルのDSNをここに設定します。/usr/local/etc/odbc.iniこのビットをファイルに追加します。

[MSSQL]
Description = MS SQL Server
Driver = /usr/local/lib/libtdsodbc.so
Server = 192.168.2.3
UID = devuser
PWD = devpass
ReadOnly = No
Port = 1433

isqlツールを使用して接続をテストします。

isql -v MSSQL devuser 'devpass'

「Connected!」と表示されたら おめでとうございます、おめでとうございます!そうでない場合は、本当に申し訳ありません。役立つかもしれないいくつかのリソースがある以下を参照してください。

ここでApacheを再起動し、DSNとして「MSSQL」を使用してPHPからテストします。何かがうまくいかない場合は、これらのパッケージの一部またはすべてをインストールしてみてください:mdbtools libmdbodbc libmdbtools mdbtools-gmdb


「tsql -S 192.168.0.1 -U devuser」の後:外部ホストによって接続が閉じられました。私は何をすべきか?
mertyildiran、2015年

ローカルIPを使用
Trevor Clarke

私は実際に「tsql -S 77.223.141.204 -U bacon」MSSQLサーバーのIPアドレスを使用しました
mertyildiran

それはローカルホストではないでしょうか?自分の外部IPに接続できないからです。
Trevor Clarke

はい、外部IPはこの方法でアクセスできませんか?私は何をすべきか?
mertyildiran、2015年


0

リンクのコンテンツをファイルにコピーしてください。"/etc/odbc.ini"ファイルでSQLサーバーの詳細を更新する必要があります。あなたはリンクhttp://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/を参照することができます


「tsql -S 192.168.0.1 -U devuser」の後:外部ホストによって接続が閉じられました。私は何をすべきか?
mertyildiran、2015年

MSSQLサーバーでポート1433が開いているかどうかを確認できますか。MSSQLサーバーのポート1433にアクセスできることを確認する必要があります。開いていない場合は、ポートを開いて確認してください
vembutech

0

Ubuntu 14.04と17.04(どちらもLTS 64ビット)でこれを行う必要がありました。おそらくそれ以降のバージョンで動作します。

unixodbc(ODBC接続)、freetds(SQL Server接続)、およびtdsodbc(前の2つの間のブリッジ)をインストールします。

sudo apt install unixodbc freetds-bin tdsodbc

ODBCドライバーを/etc/odbcinst.iniに追加します(空である必要があります)

[SQL Server]
Description = FreeTDS driver
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

DSNを/etc/odbc.iniに追加します(空のはずです)。

[ACCOUNTING]
Description = Accounting database
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Server = 123.123.123.123
Database = your_database_name
Port = 1433

そして、それがすべてでした。


libtdsodbc.soおよびlibtdsS.soは、/ usr / lib / x86_64-linux-gnu / odbc /
Strixy

0

によって暗示される質問に答えるには:

UbuntuからMSSQL接続を行うための簡単で完全なチュートリアルが必要です

...そしてすべてのFreeTDSセットアップのものを無視します。

使用MSSQL-CLIインストール使用法)。


0

私はマイクロソフト製品を多用する会社で働いています。ただし、私はLinuxマシン(Ubuntu)で作業することを好みます。具体的には、Ubuntu 16.04 LTSを使用しています。

JetBrainsのDataGripまたはSQL ElectronをSQL GUIとして使用しています。DataGripには、SQL Server用のMicrosoft JDBC Driver が必要です。これは、DataGripを初めて開いたときに手動で指定する必要があります。これをに入れました/usr/share/java/が、どこでも機能します。

Windows 10ラップトップでの接続は簡単です。SQL Server Management Studioを開き、資格情報を使用してログインします(ユーザー名+パスワード)。Windows認証を使用していません。

前提条件

Ubuntuから接続するには、少し(ほんの少し)追加の作業が必要です。まず、Windows 10マシンでPowershellターミナルを開き、次のように入力します

nslookup <server name here>

そしてそれは次のようなものを返します

Non-authoritative answer:
Name: <server name here>
Address: <server's address>

サーバーの名前とアドレスは静的であるため、上記は、アクセスしようとするサーバーごとに1回だけ実行する必要があります。

DataGrip

次に、Linuxマシンにジャンプして、DataGripを開きます。「HostI」と入力した<server's address>場合、ポート:1433(これはMS SQL Serverのデフォルトです)。URLは次のようになります。

URL: jdbc:sqlserver://<server's address>:1433

をクリックするとTest Connection、まだログイン情報を追加していない場合は、ログイン情報の入力を求められます。DataGripは以上です。

DataGripには、次のブログもあります。これは、新しいユーザーに役立つ場合があります 。MS SQL ServerへのDataGripの接続

SQLエレクトロン

DataGripを購入したくない場合は、SQL Electronを使用できます。手順は似ています。SQL Electronを開き、[追加]をクリックして新しいサーバーを追加Server Address<server's address>、「ポート:1433」と入力し、最後にログイン資格情報を入力します。以上です!


0

リモートサーバーで実行されているMSSQLインスタンスに接続するには:

この記事の該当する手順に従って くださいhttps://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/connection-string-keywords-and-data-source-names-dsns?view=sql -server-2017

注:テストを完了するには、さらにいくつかのことを行う必要があります。/etc/odbc.iniを編集して、以下を追加します。

[MSSQL] Driver=ODBC Driver 17 for SQL Server Server=[ServerIP][,1433]

テストを実行するには、ターミナルで以下を実行します:

isql -v MSSQL [ユーザー名] [パスワード]

「接続された」応答が表示されます。

苦労している場合は、LinuxおよびWindowsサーバーのポートが開いていることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.