Conexión a un servidor MS SQL local desde un cliente GUI


11

Soy muy nuevo en SQL y servidores de bases de datos. Recientemente he estado usando SQL Server Express y accediendo a mi base de datos usando SQL Server Management Studio en Windows. Ahora estoy tratando de lograr una configuración similar en una máquina Linux.

Me gustaría crear una instancia local de SQL Server en la máquina y luego usar SQLectron como cliente GUI para consultar mi base de datos. Estoy usando Manjaro Linux y, por lo tanto, instalo mis paquetes desde AUR.

Hasta ahora he instalado mssql-server, mssql-toolsy sqlectron-gui. He ejecutado el sudo /opt/mssql/bin/mssql-conf setupcomando para (creo) configurar un servidor local. Después de hacerlo, ejecutar el comando systemctl status mssql-serverdevuelve esto:

[kev @ XPS-Manjaro ~] $ systemctl status mssql-server
● mssql-server.service: motor de base de datos de Microsoft SQL Server
Cargado: cargado (/usr/lib/systemd/system/mssql-server.service; activado; proveedor preestablecido: desactivado)
Activo: activo (en ejecución) desde el miércoles 2017-08-23 13:43:49 IST; Hace 2h 42min
    Documentos: https://docs.microsoft.com/en-us/sql/linux
PID principal: 9130 (sqlservr)
    Tareas: 165
CGroup: /system.slice/mssql-server.service
        309130 / opt / mssql / bin / sqlservr
        149144 / opt / mssql / bin / sqlservr

23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [145B blob data]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [66B blob data]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [96B blob data]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [100B blob data]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [71B blob data]
23 de agosto 13:43:52 XPS-Manjaro sqlservr [9130]: [124B blob data]
23 de agosto 13:49:03 XPS-Manjaro sqlservr [9130]: [datos de blob 156B]
23 de agosto 13:49:03 XPS-Manjaro sqlservr [9130]: [194B blob data]
23 de agosto 13:52:31 XPS-Manjaro sqlservr [9130]: [datos de blob 74B]
23 de agosto 13:52:31 XPS-Manjaro sqlservr [9130]: [199B datos de blob]

Ahora estoy intentando crear una conexión local a mi servidor a través de SQLectron en la siguiente pantalla:

ingrese la descripción de la imagen aquí

Como tengo muy poca experiencia con los servidores SQL, estoy completamente perdido con dónde obtener todas estas credenciales para conectarme a mi servidor local. La única que conozco es la contraseña que configuré en el sudo /opt/mssql/bin/mssql-conf setupcomando.

¿Cómo encuentro el nombre del servidor, la dirección del host (127.0.0.1?), El puerto, el dominio, la ruta del socket de Unix y el nombre de usuario?


Solo he trabajado con SQL Server en Windows, pero si algunos términos me ayudarían: Nombre sería el nombre del servidor (y la instancia, si es necesario); por lo que dices, addressya que 127.0.0.1` debería funcionar; portdebería haberse configurado al configurar el servidor (el valor predeterminado suele ser 1433); usersería el nombre de usuario con el que desea iniciar sesión (probablemente podría ser una cuenta de usuario de Linux o una cuenta de SQL Server (como sa), y passwordes la contraseña de esa cuenta. DatabaseY Schemasería la base de datos y el esquema predeterminados a los que se conectaría; intente mastery en blanco, o mastery dbo.
RDFozz

Respuestas:


7

Si está ejecutando la GUI en la misma máquina que el servicio mssql-server, puede usar localhost para la dirección (127.0.0.1). Si está ejecutando la GUI desde una estación de trabajo diferente, necesitará la dirección IPv4 de la máquina donde se ejecuta el servicio mssql-server. Puede obtener eso ejecutándose ifconfigdesde un indicador de terminal de Linux. Salida de muestra de ifconfig:

eth0: flags = 4163 mtu 1500
        ether 00: 15: 5d: 89: 45: 01 txqueuelen 1000 (Ethernet)
        Paquetes RX 423 bytes 137827 (134.5 KiB)
        Errores RX 0 caídos 0 desbordamientos 0 fotograma 0
        Paquetes TX 0 bytes 0 (0.0 B)
        Errores de TX 0 caídos 0 desbordamientos 0 transportista 0 colisiones 0

eth1: flags = 4163 mtu 1500
        inet 192.168.200.11 netmask 255.255.255.0 broadcast 192.168.200.255
        inet6 fe80 :: 2f70: 9d15: 8e7d: 16cb prefixlen 64 scopeid 0x20
        ether 00: 15: 5d: 89: 45: 04 txqueuelen 1000 (Ethernet)
        Paquetes RX 20138 bytes 2006000 (1.9 MiB)
        Errores RX 0 caídos 0 desbordamientos 0 fotograma 0
        Paquetes TX 19756 bytes 30125657 (28.7 MiB)
        Errores de TX 0 caídos 0 desbordamientos 0 transportista 0 colisiones 0

lo: banderas = 73 mtu 65536
        inet 127.0.0.1 máscara de red 255.0.0.0
        inet6 :: 1 prefixlen 128 scopeid 0x10
        loop txqueuelen 1 (Loopback local)
        Paquetes RX 3239 bytes 361340 (352.8 KiB)
        Errores RX 0 caídos 0 desbordamientos 0 fotograma 0
        Paquetes TX 3239 bytes 361340 (352.8 KiB)
        Errores de TX 0 caídos 0 desbordamientos 0 transportista 0 colisiones 0

En el resultado anterior, el bit que es importante es la dirección "inet", que en mi caso es 192.168.200.11.

El puerto predeterminado para SQL Server es 1433; a menos que elija un puerto diferente en mssql-conf, use ese número de puerto. Asegúrese de que el firewall en la caja de Linux permita conexiones externas a través de 1433, si tiene la intención de conectarse a SQL Server a través de la red.

Use sacomo inicio de sesión y la contraseña que especificó durante la instalación de SQL Server a través del sudo /opt/mssql/bin/mssql-conf setupcomando.

Dejaría el dominio y la ruta del socket de Unix en blanco.

Una vez que se haya conectado a la instancia, es posible que desee configurar una cuenta que no sea sa. Haz eso con la CREATE LOGINdeclaración .

Solo para su información, puede usar SQL Server Management Studio para conectarse a SQL Server en Linux, si así lo desea.


Con respecto a su FYI, ¿cómo puedo obtener la GUI de SSMS en Linux? He instalado ambos mssql-servery mssql-tools, ninguno de los cuales parece tener ningún tipo de aplicación GUI o algo instalado con respecto a SSMS. Como estoy más familiarizado con SSMS, preferiría seguir usándolo, pero no pensé que estuviera disponible en Linux.
KOB

oh, no, quise decir que podría ejecutar SSMS en una estación de trabajo de Windows y conectarlo a SQL Server en Linux.
Max Vernon el

Oh ok, eso creo. No, solo estoy experimentando y me gustaría tener todo funcionando desde mi máquina Linux.
KOB

Un último seguimiento: si ahora quisiera acceder a mi base de datos desde un script de Python, ¿tendría que configurar mi cuenta que no es sa como usted mencionó y luego instalar algún controlador? Usé el controlador ODBC cuando trabajaba en Windows. En mi script Pyton en Windows, obtuve el nombre de mi servidor para el motor de conexión de SSMS, que estaba en forma de CPX-9GL9XXXXXXX\SQLEXPRESS. ¿Cómo puedo encontrar este nombre de servidor equivalente sin tener acceso a SSMS?
KOB

El Explorador de SQL Server se utiliza para localizar instancias de SQL Server sin conocer el número de puerto de antemano ... por lo que para CPX-9GL9XXXXXXX\SQLEXPRESS-> SQLEXPRESSes el nombre de la instancia , que el servicio del Explorador de SQL Server traduciría en un número de puerto. Desafortunadamente, el navegador SQL Server aún no es compatible con Linux , por lo que debe conocer el número de puerto, que es 1433 de forma predeterminada.
Max Vernon el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.