从GUI客户端连接到本地MS SQL Server


11

我对SQL和数据库服务器非常陌生。我最近一直在使用SQL Server Express,并在Windows上使用SQL Server Management Studio访问数据库。我现在正在尝试在Linux机器上实现类似的设置。

我想在计算机上创建一个本地SQL Server实例,然后将SQLectron用作查询我的数据库的GUI客户端。我正在使用Manjaro Linux,因此从AUR安装我的软件包。

到目前为止,我已经安装了mssql-server,mssql-tools并且sqlectron-gui。我已经运行了该sudo /opt/mssql/bin/mssql-conf setup命令,以便(我相信)设置本地服务器。这样做之后,运行命令systemctl status mssql-server将返回以下内容:

[kev @ XPS-Manjaro〜] $ systemctl状态mssql-server
●mssql-server.service-Microsoft SQL Server数据库引擎
已加载:已加载(/usr/lib/systemd/system/mssql-server.service;已启用;供应商预设:已禁用)
活跃:活跃于(跑步)自星期三2017-08-23 13:43:49 IST; 2h 42min前
    文件: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

8月23日13:43:52 XPS-Manjaro sqlservr [9130]:[145B blob数据]
8月23日13:43:52 XPS-Manjaro sqlservr [9130]:[66B blob数据]
8月23日13:43:52 XPS-Manjaro sqlservr [9130]:[96B blob数据]
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数据]
8月23日13:49:03 XPS-Manjaro sqlservr [9130]:[156B blob数据]
8月23日13:49:03 XPS-Manjaro sqlservr [9130]:[194B blob数据]
8月23日13:52:31 XPS-Manjaro sqlservr [9130]:[74B blob数据]
8月23日13:52:31 XPS-Manjaro sqlservr [9130]:[199B blob数据]

我现在尝试在以下屏幕上通过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是该帐户的密码。Database并且Schema将默认的数据库和模式,你将连接到;尽量master和空白,或master和dbo。
— RDFozz

Answers:


7

如果您在与mssql-server服务相同的计算机上运行GUI,则可以将localhost用于地址(127.0.0.1)。如果从其他工作站运行GUI,则需要运行mssql-server服务的计算机的IPv4地址。您可以通过ifconfig在Linux终端提示符下运行来获取该信息。来自的样本输出ifconfig:

eth0:标志= 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:标志= 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:标志= 73 mtu 65536
        inet 127.0.0.1网络掩码255.0.0.0
        inet6 :: 1 prefixlen 128作用域0x10
        循环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语句来做到这一点。

只是一个FYI,如果您愿意,您可以使用SQL Server Management Studio连接到Linux上的SQL Server。


关于您的FYI,如何在Linux上获得SSMS GUI?我已经安装了两个mssql-server和mssql-tools-既没有这似乎有任何形式的GUI应用程序或问候SSMS安装任何东西。因为我最熟悉SSMS,所以我希望继续使用它,但是认为Linux上不可用。
— KOB

哦,不,我的意思是您可以在Windows工作站上运行SSMS 并将其连接到Linux上的SQL Server。
— Max Vernon

哦,好的,我是这么认为的。不,我只是在尝试,并且想让我的Linux机器上的所有内容都在运行。
— KOB

最后一步:如果我现在想从Python脚本中访问数据库,我是否仅需要按照您提到的那样配置我的non-sa帐户,然后安装一些驱动程序?在Windows上工作时,我使用了ODBC驱动程序。在Windows上的Pyton脚本中,我从SSMS获得了连接引擎的服务器名称,格式为CPX-9GL9XXXXXXX\SQLEXPRESS。如何在不访问SSMS的情况下找到此等效服务器名称?
— KOB

SQL Server Browser用于定位SQL Server实例,而无需事先知道端口号...因此CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESS是实例名称,它将由SQL Server Browser服务转换为端口号。不幸的是,Linux尚不支持 SQL Server Browser ,因此您需要知道端口号,默认情况下为1433。
— Max Vernon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.