Подключение к локальному серверу MS SQL от клиента с графическим интерфейсом

11

Я очень плохо знаком с SQL и серверами баз данных. Недавно я использовал SQL Server Express и обращался к своей базе данных с помощью SQL Server Management Studio в Windows. Я сейчас пытаюсь добиться аналогичной настройки на машине Linux.

Я хотел бы создать локальный экземпляр SQL Server на компьютере, а затем использовать SQLectron в качестве клиента с графическим интерфейсом для запросов к моей базе данных. Я использую Manjaro Linux и поэтому устанавливаю свои пакеты из AUR.

До сих пор я установил mssql-server, mssql-toolsи sqlectron-gui. Я выполнил sudo /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; включен; предустановка поставщика: отключена)
Активен: активен (работает) с ср. 2017-08-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
        91─9130 / opt / mssql / bin / sqlservr
        9─9144 / opt / mssql / bin / sqlservr

23 августа 13:43:52 XPS-Manjaro sqlservr [9130]: [данные BLB 145B]
23 августа 13:43:52 XPS-Manjaro sqlservr [9130]: [данные BLB 66B]
23 августа 13:43:52 XPS-Manjaro sqlservr [9130]: [данные BLB 96B]
23 августа 13:43:52 XPS-Manjaro sqlservr [9130]: [данные BLB 100B]
23 августа 13:43:52 XPS-Manjaro sqlservr [9130]: [данные BLB 71B]
23 августа 13:43:52 XPS-Manjaro sqlservr [9130]: [данные BLOB-объекта 124B]
23 августа 13:49:03 XPS-Manjaro sqlservr [9130]: [данные блоба 156B]
23 августа 13:49:03 XPS-Manjaro sqlservr [9130]: [данные BLOB-объекта 194B]
23 августа 13:52:31 XPS-Manjaro sqlservr [9130]: [данные BLB 74B]
23 августа 13:52:31 XPS-Manjaro sqlservr [9130]: [данные BLB 199B]

Сейчас я пытаюсь создать локальное соединение с моим сервером через SQLectron на следующем экране:

введите описание изображения здесь

Поскольку у меня очень мало опыта работы с SQL-серверами, я совершенно забыл, где взять все эти учетные данные для подключения к моему локальному серверу. Единственный известный мне пароль - это пароль, который я установил в sudo /opt/mssql/bin/mssql-conf setupкоманде.

Как мне найти имя сервера, адрес хоста (127.0.0.1?), Порт, домен, путь к сокету Unix и имя пользователя?

KOB
источник
Я работал только с SQL Server в Windows, но если бы помогли некоторые термины: Name - это имя сервера (и экземпляра, если необходимо); из того, что вы говорите, addressкак должно работать 127.0.0.1`; portдолжен был быть установлен при настройке сервера (по умолчанию обычно 1433); userбудет именем пользователя, в который вы хотите войти (вероятно, это может быть учетная запись пользователя Linux или учетная запись SQL Server (например sa), и passwordявляется паролем для этой учетной записи. Databaseи Schemaбудет базой данных и схемой по умолчанию, к которой вы будете подключаться; попробуйте masterи пусто, или masterи dbo.
RDFozz

Ответы:

7

Если вы используете GUI на той же машине, что и служба mssql-server, вы можете использовать localhost для адреса (127.0.0.1). Если вы используете графический интерфейс с другой рабочей станции, вам потребуется IPv4-адрес компьютера, на котором работает служба mssql-server. Вы можете получить это, запустив ifconfigиз терминала терминала Linux. Пример вывода из ifconfig:

eth0: flags = 4163 mtu 1500
        эфир 00: 15: 5д: 89: 45: 01 txqueuelen 1000 (Ethernet)
        RX-пакеты 423 байта 137827 (134,5 КиБ)
        RX ошибок 0 отброшено 0 переполнений 0 кадра 0
        Пакеты TX 0 байтов 0 (0,0 B)
        Ошибки TX 0 отброшены 0 переполнений 0 несущих 0 коллизий 0

eth1: flags = 4163 mtu 1500
        инет 192.168.200.11 сетевая маска 255.255.255.0 широковещательная 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16 cb префиксный 64 scopeid 0x20
        эфир 00: 15: 5д: 89: 45: 04 txqueuelen 1000 (Ethernet)
        RX-пакеты 20138 байтов 2006000 (1,9 МиБ)
        RX ошибок 0 отброшено 0 переполнений 0 кадра 0
        Пакеты TX 19756 байтов 30125657 (28,7 МиБ)
        Ошибки TX 0 отброшены 0 переполнений 0 несущих 0 коллизий 0

lo: flags = 73 mtu 65536
        Инет 127.0.0.1 маска сети 255.0.0.0
        inet6 :: 1 префиксный 128 scopeid 0x10
        loop txqueuelen 1 (локальная петля)
        RX-пакеты 3239 байтов 361340 (352,8 КиБ)
        RX ошибок 0 отброшено 0 переполнений 0 кадра 0
        Пакеты TX 3239 байтов 361340 (352,8 КиБ)
        Ошибки TX 0 отброшены 0 переполнений 0 несущих 0 коллизий 0

В приведенном выше выводе важным битом является адрес "inet", который в моем случае равен 192.168.200.11.

Порт по умолчанию для SQL Server - 1433 - если вы не выбрали другой порт в mssql-conf, используйте этот номер порта. Убедитесь, что брандмауэр на коробке Linux разрешает внешние подключения через 1433, если вы собираетесь подключаться к SQL Server через сеть.

Используйте saв качестве логина и пароля, который вы указали при установке SQL Server с помощью sudo /opt/mssql/bin/mssql-conf setupкоманды.

Я бы оставил путь к домену и сокету unix пустым.

После подключения к экземпляру вы можете настроить учетную запись не-sa. Сделайте это с CREATE LOGINзаявлением .

Просто к вашему сведению, вы можете использовать SQL Server Management Studio для подключения к SQL Server в Linux, если вы этого хотите.

Макс Вернон
источник
Что касается вашего FYI, как я могу получить графический интерфейс SSMS в Linux? Я установил и то, mssql-serverи mssql-toolsдругое, которое, кажется, не имеет какого-либо приложения с графическим интерфейсом или чего-либо установленного в отношении SSMS. Поскольку я больше всего знаком с SSMS, я бы предпочел продолжать использовать его, но не думал, что он доступен в Linux.
KOB
о, нет, я имел в виду, что вы можете запустить SSMS на рабочей станции Windows и подключить ее к SQL Server в Linux.
Макс Вернон,
О, хорошо, я так и думал. Нет, я просто экспериментирую и просто хочу, чтобы все работало на моей машине с Linux.
KOB
И последнее: если я теперь хочу получить доступ к своей базе данных из скрипта Python, нужно ли мне просто настроить свою учетную запись не-sa, как вы упомянули, и затем установить какой-нибудь драйвер? Я использовал драйвер ODBC при работе в Windows. В моем скрипте Pyton для Windows я получил имя сервера для механизма соединений от SSMS, которое было в форме CPX-9GL9XXXXXXX\SQLEXPRESS. Как я могу найти это эквивалентное имя сервера без доступа к SSMS?
KOB
Браузер SQL Server используется для поиска экземпляров SQL Server, не зная заранее номер порта ... поэтому for CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSэто имя экземпляра , которое будет преобразовано службой браузера SQL Server в номер порта. К сожалению, браузер SQL Server еще не поддерживается в Linux , поэтому вам нужно знать номер порта, который по умолчанию равен 1433.
Макс Вернон,