GUIクライアントからローカルMS SQL Serverへの接続


11

SQLサーバーとデータベースサーバーは初めてです。最近、SQL Server Expressを使用しており、Windows上のSQL Server Management Studioを使用してデータベースにアクセスしています。Linuxマシンで同様のセットアップを実現しようとしています。

マシン上にローカルSQL Serverインスタンスを作成し、データベースをクエリするためのGUIクライアントとしてSQLectronを使用します。Manjaro Linuxを使用しているので、AURからパッケージをインストールします。

これまでのところ私がインストールされているmssql-servermssql-toolssqlectron-guisudo /opt/mssql/bin/mssql-conf setupローカルサーバーをセットアップするために(私は信じています)コマンドを実行しました。その後、コマンドを実行すると次のようにsystemctl status mssql-server返されます。

[kev @ XPS-Manjaro〜] $ systemctl status mssql-server
●mssql-server.service-Microsoft SQL Serverデータベースエンジン
ロード済み:ロード済み(/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset:disabled)
アクティブ:2017年8月23日水曜日13:43:49 IST以降アクティブ(実行中)。2時間42分前
    ドキュメント:https://docs.microsoft.com/en-us/sql/linux
メインPID:9130(sqlservr)
    タスク:165
CGroup:/system.slice/mssql-server.service
        ├─9130/ opt / mssql / bin / sqlservr
        └─9144/ opt / mssql / bin / sqlservr

Aug 23 13:43:52 XPS-Manjaro sqlservr [9130]:[145B blob data]
Aug 23 13:43:52 XPS-Manjaro sqlservr [9130]:[66B blob data]
Aug 23 13:43:52 XPS-Manjaro sqlservr [9130]:[96B blob data]
8月23日13:43:52 XPS-Manjaro sqlservr [9130]:[100B blobデータ]
8月23日13:43:52 XPS-Manjaro sqlservr [9130]:[71B blobデータ]
8月23日13:43:52 XPS-Manjaro sqlservr [9130]:[124B blobデータ]
Aug 23 13:49:03 XPS-Manjaro sqlservr [9130]:[156B blob data]
Aug 23 13:49:03 XPS-Manjaro sqlservr [9130]:[194B blob data]
Aug 23 13:52:31 XPS-Manjaro sqlservr [9130]:[74B blob data]
Aug 23 13:52:31 XPS-Manjaro sqlservr [9130]:[199B blob data]

次の画面で、SQLectronを介してサーバーへのローカル接続を作成しようとしています。

ここに画像の説明を入力してください

SQL Serverの経験はほとんどないので、ローカルサーバーに接続するためにこれらの資格情報をすべて取得する場所がまったくわかりません。私が知っているのは、sudo /opt/mssql/bin/mssql-conf setupコマンドで設定したパスワードだけです。

サーバー名、ホストアドレス(127.0.0.1?)、ポート、ドメイン、Unixソケットパス、ユーザー名はどのようにして見つけますか?


私はWindows上のSQL Serverでのみ作業しましたが、いくつかの用語が役立つ場合:名前はサーバーの名前(および必要に応じてインスタンス)です。あなたが言うことからaddress、127.0.0.1`はうまくいくはずです; portサーバーのセットアップ時に設定されているはずです(デフォルトは通常1433です)。userあなたがにログインするユーザ名(おそらく、Linuxのユーザーアカウント、またはSQL Serverアカウント(のような可能性があることでしょうsa)、そしてpassword。そのアカウントのパスワードであるDatabaseSchemaみてください。あなたがに接続しますデフォルトのデータベースおよびスキーマだろうmasterと空白、またはmasterdbo
RDFozz

回答:


7

mssql-serverサービスと同じマシンでGUIを実行している場合は、アドレス(127.0.0.1)にlocalhostを使用できます。別のワークステーションからGUIを実行している場合は、mssql-serverサービスが実行されているマシンのIPv4アドレスが必要です。これifconfigは、Linuxターミナルプロンプトから実行すると取得できます。からの出力例ifconfig

eth0:flags = 4163 mtu 1500
        エーテル00:15:5d:89:45:01 txqueuelen 1000(イーサネット)
        RXパケット423バイト137827(134.5 KiB)
        RXエラー0ドロップ0オーバーラン0フレーム0
        TXパケット0バイト0(0.0 B)
        TXエラー0ドロップ0オーバーラン0キャリア0コリジョン0

eth1:flags = 4163 mtu 1500
        inet 192.168.200.11ネットマスク255.255.255.0ブロードキャスト192.168.200.255
        inet6 fe80 :: 2f70:9d15:8e7d:16cb prefixlen 64 scopeid 0x20
        エーテル00:15:5d:89:45:04 txqueuelen 1000(イーサネット)
        RXパケット20138バイト2006000(1.9 MiB)
        RXエラー0ドロップ0オーバーラン0フレーム0
        TXパケット19756バイト30125657(28.7 MiB)
        TXエラー0ドロップ0オーバーラン0キャリア0コリジョン0

lo:flags = 73 mtu 65536
        inet 127.0.0.1ネットマスク255.0.0.0
        inet6 :: 1 prefixlen 128 scopeid 0x10
        loop txqueuelen 1(ローカルループバック)
        RXパケット3239バイト361340(352.8 KiB)
        RXエラー0ドロップ0オーバーラン0フレーム0
        TXパケット3239バイト361340(352.8 KiB)
        TXエラー0ドロップ0オーバーラン0キャリア0コリジョン0

上記の出力では、重要なビットは「inet」アドレスです。私の場合は192.168.200.11です。

SQL Serverのデフォルトポートは1433です。mssql-confで別のポートを選択しない限り、そのポート番号を使用してください。ネットワーク経由でSQL Serverに接続する場合は、Linuxボックスのファイアウォールが1433経由の外部接続を許可していることを確認してください。

saログインとして使用し、SQL Serverのセットアップ中にsudo /opt/mssql/bin/mssql-conf setupコマンドで指定したパスワードを使用します。

ドメインとUNIXソケットパスは空白のままにします。

インスタンスに接続したら、sa以外のアカウントを構成できます。CREATE LOGINステートメントでそれを行います。

参考までに、必要に応じて、SQL Server Management Studioを使用してLinux上のSQL Serverに接続できます。


FYIに関して、LinuxでSSMS GUIを入手するにはどうすればよいですか?私は両方mssql-serverをインストールしましたmssql-tools-どちらも、SSMSに関して何らかの種類のGUIアプリケーションまたは何かがインストールされているようには見えません。私はSSMSに最も慣れているので、引き続き使用したいのですが、Linuxで使用できるとは思いませんでした。
KOB 2017

ああ、いや、WindowsワークステーションでSSMSを実行し、それをLinux上のSQL Serverに接続できることを意味しました。
Max Vernon

ああ、そうだと思った。いいえ、私は実験中です。Linuxマシンからすべてを実行したいのですが。
KOB 2017

最後にもう1つ:Pythonスクリプト内からデータベースにアクセスしたい場合は、先ほど述べたように、sa以外のアカウントを構成して、ドライバーをインストールするだけでよいのでしょうか。Windowsで作業するときは、ODBCドライバーを使用しました。Windows上のPytonスクリプトで、接続エンジンのサーバー名をSSMSから取得しましたCPX-9GL9XXXXXXX\SQLEXPRESS。これはの形式でした。SSMSにアクセスせずに、この同等のサーバー名を見つけるにはどうすればよいですか?
KOB 2017

SQL Server Browserは、事前にポート番号を知らなくてもSQL Serverインスタンスを見つけるために使用されます...したがって、for- CPX-9GL9XXXXXXX\SQLEXPRESS> SQLEXPRESSはインスタンスであり、SQL Server Browserサービスによってポート番号に変換されます。残念ながら、SQL Server BrowserはLinuxではまだサポートされていないため、ポート番号(デフォルトでは1433)を知る必要があります。
Max Vernon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.