UbuntuからMSSQL接続を行うための簡単で完全なチュートリアルが必要です。
FreeTDSとUnixODBCをインストールしたと思いますが、設定が非常に複雑で、問題を理解できませんでした。
このチュートリアルに従いました: https://github.com/Rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubunt
しかし、私は失敗しました。
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"に変更を加えていません。
それでも、何も変わっていません。
手順を追って説明します (こちらにあります) :
まず、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.iniファイルのODBC内の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
Trusty 14.04で http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz の作成に問題がありました
tsql
コマンドを実行しようとすると、tsql
がaptを介してインストールできることがわかりました。
$ Sudo apt-get install freetds-bin
Ubuntu 14.04と17.04の両方でこれを行う必要がありました。両方とも64ビットです。おそらくそれ以降のバージョンで動作します。
nixodbc(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
そして、それがすべてでした。
リンクのコンテンツをファイルにコピーしてください。 「/etc/odbc.ini」ファイルでSQLサーバーの詳細を更新する必要があります。リンクを参照できます http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/
マイクロソフト製品を頻繁に使用する会社で働いています。ただし、Linuxマシン(Ubuntu)で作業することを好みます。具体的には、Ubuntu 16.04 LTSを使用します。
JetGUIの DataGrip または SQL Electron をSQL GUIとして使用します。 DataGripには SQL Server用Microsoft JDBCドライバー が必要です。これは、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回だけです。
次に、LinuxマシンにジャンプしてDataGripを開きます。 Host
には、<server's address>
と入力します。ポート:1433(これはMS SQL Serverのデフォルトです)。 URLは次のようになります。
URL: jdbc:sqlserver://<server's address>:1433
Test Connection
をクリックすると、まだ追加していない場合はログイン情報の入力を求められます。 DataGripについては以上です!
また、DataGripには次のブログがあります。これは新規ユーザーに役立つかもしれません: DataGripをMS SQL Serverに接続する
DataGripを購入したくない場合は、SQL Electronを使用できます。手順は似ています。 SQL Electronを開き、[追加]をクリックして新しいサーバーを追加し、Server Address
に<server's address>
と入力します(ポート:1433、最後にログイン資格情報)。以上です!