Adaptive Server is unavailable or does not existエラー解決策について
Adaptive Server is unavailable or does not existエラーってどう解決するのかをしらべたのでまとめておきます。
環境確認
インスタンス名の調査
まずは、SQL Server のインスタンスに関する情報を集めます。
1.SQLServerのマシンにログインできる場合には、ログインします。
2.SQL Server 構成マネージャーを起動します。
3.構成マネージャーの左ペインで、 [SQL Server のサービス] を選択します。
※インスタンスの名前はかっこで表示されます。
※この場合は、SQL Server (MSSQLSERVER) という名前のインスタンスが既定の (名前のない) インスタンスです。
SQLServerで使用するTCPポート番号の調査
続いて、SQLServerで使用するTCPポート番号を調査します。
1.SQLServerを使用するサーバでSQLServer Management Studioを起動します。
3.オブジェクトエクスプローラーで[管理] を展開し、 [SQL Server ログ] を展開し、現在のログをダブルクリックします。
4.ログビューアーで、ツールバーの [フィルター] ボタンをクリックします。
5. [テキストを含むメッセージ] ボックスで、「 server is listening on」と入力し、 [フィルターの適用] をクリックし、 [OK] をクリックします。
6.Server is listening on [ 'any'
7.表示された[1433]をメモしておきます。
※今回は1433なので、デフォルトの設定で構築されていることが確認できます。
別の確認方法
接続する予定のサーバから以下のコマンドを打ちます。
$ tsql -LH ServerName1
そうするとこんな感じに出力されたりします。
$ tsql -LH ServerName1 ServerName ServerName1 InstanceName InstanceName IsClustered No Version 13.0.1601.5 tcp 1433
プロトコルが有効かを確認する。
構成マネージャーを利用して有効にしない限り、別のコンピューターからデータベース エンジンへの接続が有効にならず、接続することができません。
1.SQL Server 構成マネージャーを起動します。
2.左ペインで、 [SQL Server ネットワークの構成] を展開し、接続先とする SQL Server インスタンスを選択します。
3.一覧上で、有効となっていることを確認します。
4.TCP/IP が有効ではない場合、 [TCP/IP] を右クリックし、 [有効化] をクリックします。
5.変更した場合には、再起動が必要になります。
6.左ペインで、 [SQL Server のサービス] を接続します。
7.右ペインで、データベース エンジンのインスタンスを右クリックし、 [再起動] をクリックします。
TCP/IP 接続テスト
ping
ツールを使用し、TCP をテストします。
1.[スタート] メニューの [ファイル名を指定して実行] をクリックします。[ファイル名を指定して実行] ウィンドウで、「 cmd」と入力し、 [OK] をクリックします。
2.コマンド プロンプト ウィンドウで、「 ping
」と入力し、SQL Server を実行しているコンピューターの IP アドレスを入力します。
3.ネットワークが適切に構成されていれば、Reply from
ファイアーウォールのポート確認
別のコンピューターから TCP/IP で接続するには、SQL Server コンピューターで、データベース エンジンで使用される TCP ポートへの接続を許可するようにファイアウォールを構成する必要があります。
接続確認
以上の結果をもって
上記内容でまずサーバから接続できるかを確認する。
$ tsql -H ServerName1 -p ポート番号 -U ユーザ名 -P パスワード
-p : 上で調査したtcpの番号を入力する。
1./etc/freetds.confの設定
freetds.confに以下のような設定を追記する。
[ServerName1] host = IP or DNS port = port番号(上で調査したtcp番号) tds version = 7.4 client charset = UTF-8
2./etc/odbc.iniの設定
odbc.iniに以下のような設定を追記する。
[ServerName1] Servername = ServerName1 Driver = FreeTDS Database = DatabaseName
3.接続確認
$ isql -v ServerName ユーザ名 パスワード
これで繋がるといいですね!