[CentOS-es] Conexion Centos y SQL Server

Elio Bastias, Project Managers elio.bastias en gmail.com
Mar Jun 27 23:21:10 UTC 2017


Buenas tardes, Luis,
Mira con respecto al error, lo que rescato es "Login timeout", lo que
parece que ni encuentra la db, lo que intentaría sería colocar el data
source name (dsn), como lo recomienda el sitio (
https://docs.microsoft.com/en-us/sql/connect/php/connection-options), lo
importante también es que si se instalo bien el driver (
https://www.microsoft.com/download/details.aspx?id=20098), y saber bien la
versión que tenes instalada de PHP, lo que te recomendaría sería ir a PDO,
ya que te permite tener una capa de abstracción de las DB, y no preocuparte
cuando manejes diferentes tipos de DB ó migres a otro.-
También tene en cuenta la sintaxis que te da php:
<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>
"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Conexión establecida.<br />";
}else{
     echo "Conexión no se pudo establecer.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>
ya que en $serverName, te pide el nombre del servidor y no una IP, por
ejemplo por hay no esta resolviendo la IP con el nombre de la Db, ya que
por lo que entiendo vos estas en un CentOS y la DB en un windows así que
puede llegar a ser ese el problema, para decirte me apoyo en el mensaje de
error "Server is not found or not accessible. Check if instance name is
correct and if SQL Server is configured to allow remote connections"

Espero haberte dado una mano, y sino comenta como lo solucionaste para que
otros lo puedan tener en cuenta.-
Saludos


El 27 de junio de 2017, 18:24, Luis T <reywes en gmail.com> escribió:

> Estimado Aland,
>
> Gracias por responder, he instalado algunas librerias para ver si funciona.
> El escenario que tengo es por un lado el Server SQL 2014 y por otro el
> CentOS 7.3 con PHP 7.1 necesito conectarme desde CentOS a la base de datos
> de SQL Server. Probe la conexion remota hacia el SQL Server y funciona OK
> desde otro Windows. Hice una prueba desde Centos hacia Windows Server con
> el comando sqlcmd -S <IP> -U <USUARIO> -P <PASSWORD> y se conecta sin
> problema incluso puedo consultar datos de las tablas. Me presenta el
> siguiente error:
>
> Conexión no se pudo establecer.
> Array ( [0] => Array ( [0] => HYT00 [SQLSTATE] => HYT00 [1] => 0 [code] =>
> 0 [2] => [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout
> expired [message] => [unixODBC][Microsoft][ODBC Driver 13 for SQL
> Server]Login timeout expired ) [1] => Array ( [0] => 08001 [SQLSTATE] =>
> 08001 [1] => 10013 [code] => 10013 [2] => [unixODBC][Microsoft][ODBC Driver
> 13 for SQL Server]TCP Provider: Error code 0x271D [message] =>
> [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: Error
> code 0x271D ) [2] => Array ( [0] => 08001 [SQLSTATE] => 08001 [1] => 10013
> [code] => 10013 [2] => [unixODBC][Microsoft][ODBC Driver 13 for SQL
> Server]A network-related or instance-specific error has occurred while
> establishing a connection to SQL Server. Server is not found or not
> accessible. Check if instance name is correct and if SQL Server is
> configured to allow remote connections. For more information see SQL Server
> Books Online. [message] => [unixODBC][Microsoft][ODBC Driver 13 for SQL
> Server]A network-related or instance-specific error has occurred while
> establishing a connection to SQL Server. Server is not found or not
> accessible. Check if instance name is correct and if SQL Server is
> configured to allow remote connections. For more information see SQL Server
> Books Online. ) )
>
> La conexion PHP que tengo es:
>
> <?php
>   $serverName = "172.10.10.50"; //serverName\instanceName
>   $connectionInfo = array( "Database"=>"TEST", "UID"=>"user",
> "PWD"=>"123456");
>   $conn = sqlsrv_connect( $serverName, $connectionInfo);
>
>   if( $conn ) {
>     echo "Conexión establecida.<br />";
>     }else{
>     echo "Conexión no se pudo establecer.<br />";
>     die( print_r( sqlsrv_errors(), true));
>   }
> ?>
>
> Esto se puede deber algun error de sintaxis en el sqlsrv_connect??
>
>
> Saludos,
>
> Luis
>
>
>
> 2017-06-27 12:26 GMT-05:00 Aland Laines <aland.laines en gmail.com>:
>
> > Hola Ojo que estas con dos cosas distintas.. has instalado mssql, pero
> > quieres usar sqlsrv_connect, lo cual esta mal, lo correcto es usar
> > http://php.net/manual/es/function.mssql-connect.php, otra cosa revisa la
> > version de php que estas usando en el servidor en algunas tiene problemas
> > de compatibilidad y en otras esta deprecated.
> >
> > Un abrazo..
> >
> >
> >
> >
> > El 23 de junio de 2017, 16:30, Efraín Déctor <efraindector en motumweb.com>
> > escribió:
> >
> > > Que raro.
> > >
> > > Checa esta respuesta: https://stackoverflow.com/a/43687495
> > >
> > >
> > > El 23/06/2017 a las 04:20 p. m., Luis T escribió:
> > >
> > >> Hola Efraín,
> > >>
> > >> Si realice la instalacion de php-mssql. de hecho en CentOS me aparece
> > >> esto:
> > >>
> > >> Inline image 1
> > >>
> > >> Nose si es un error en la sintaxis del sqlsrv_connect aunque ya he
> > >> probado varios ejemplos que estan en la web y no doy con el error.
> Nose
> > que
> > >> pueda estar afectando la conexion.
> > >>
> > >>
> > >> Saludos,
> > >>
> > >> Luis
> > >>
> > >> 2017-06-23 16:11 GMT-05:00 Efraín Déctor <efraindector en motumweb.com
> > >> <mailto:efraindector en motumweb.com>>:
> > >>
> > >>
> > >>     Hola.
> > >>
> > >>     Seguro que instalaste php-mssql (yum install php-mssql) ?
> > >>
> > >>     Saludos
> > >>
> > >>
> > >>     El 23/06/2017 a las 03:13 p. m., Luis T escribió:
> > >>
> > >>>     Hola Efraín,
> > >>>
> > >>>     Gracias por tu respuesta, sabes que sigue todos los pasos pero no
> > >>>     me permite conectar la base SQL. Habilite la conexion remota del
> > >>>     SQL, desactive firewall. Probe con las tres opciones de conexion
> > >>>     pero nada, por telnet si se establece la conexion. Este momento
> > >>>     estoy usando esto:
> > >>>
> > >>>     <?php
> > >>>     $serverName = "172.10.10.50\SQL2014, 1433";
> > >>>     //serverName\instanceName, portNumber (default is 1433)
> > >>>     $connectionInfo = array( "Database"=>"PRUEBA", "UID"=>"user1",
> > >>>     "PWD"=>"123456");
> > >>>     $conn = sqlsrv_connect( $serverName, $connectionInfo);
> > >>>
> > >>>     if( $conn ) {
> > >>>          echo "Connection established.<br />";
> > >>>     }else{
> > >>>          echo "Connection could not be established.<br />";
> > >>>          die( print_r( sqlsrv_errors(), true));
> > >>>     }
> > >>>     ?>
> > >>>
> > >>>     Revise los logs y me aparece esto:
> > >>>
> > >>>     PHP Fatal error:  Call to undefined function sqlsrv_connect() in
> > >>>     /var/www/html/prueba.php on line 4
> > >>>
> > >>>     Toda la configuracion la realice tal como esta en el tutorial,
> > >>>     nose si hay algun error de sintaxis o es necesario habilitar algo
> > >>>     en Windows o Centos.
> > >>>
> > >>>     Cualquier ayuda de antemano gracias.
> > >>>
> > >>>
> > >>>     Saludos,
> > >>>
> > >>>     Luis
> > >>>
> > >>>
> > >>>     2017-06-22 14:43 GMT-05:00 Efraín Déctor
> > >>>     <efraindector en motumweb.com <mailto:efraindector en motumweb.com>>:
> > >>>
> > >>>         Que tal.
> > >>>
> > >>>         Primero que nada en Centos necesitas instalar php-mssql que
> > >>>         está en el repositorio EPEL.
> > >>>
> > >>>         Para la conexion en PHP sigue la documentación oficial:
> > >>>         http://php.net/manual/es/function.sqlsrv-connect.php
> > >>>         <http://php.net/manual/es/function.sqlsrv-connect.php>
> > >>>
> > >>>
> > >>>         Saludos
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>         El 22/06/2017 a las 02:36 p. m., Luis T escribió:
> > >>>
> > >>>             Estimados,
> > >>>
> > >>>             Tengo desarrollado una aplicacion PHP en un Centos 7 y
> > >>>             necesito conectarlo
> > >>>             a un servidor SQL Server donde tengo una base de datos,
> > >>>             para poder
> > >>>             almacenar ahi la informacion. He buscando en internet
> > >>>             informacion pero
> > >>>             todavia no lo tengo bien claro. Alguien que me pueda
> > >>>             indicar cual es la
> > >>>             mejor forma para realizar esto, de antemano agradezco sus
> > >>>             respuestas,
> > >>>             gracias.
> > >>>
> > >>>
> > >>>             Saludos,
> > >>>
> > >>>             Luis
> > >>>             _______________________________________________
> > >>>             CentOS-es mailing list
> > >>>             CentOS-es en centos.org <mailto:CentOS-es en centos.org>
> > >>>             https://lists.centos.org/mailman/listinfo/centos-es
> > >>>             <https://lists.centos.org/mailman/listinfo/centos-es>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>
> > >>
> > > _______________________________________________
> > > CentOS-es mailing list
> > > CentOS-es en centos.org
> > > https://lists.centos.org/mailman/listinfo/centos-es
> > >
> > _______________________________________________
> > CentOS-es mailing list
> > CentOS-es en centos.org
> > https://lists.centos.org/mailman/listinfo/centos-es
> >
> _______________________________________________
> CentOS-es mailing list
> CentOS-es en centos.org
> https://lists.centos.org/mailman/listinfo/centos-es
>



-- 
Elio Bastias
Project Manager
Smart - IT
|Open Source Innovation | Open Source Communications
Estrategia y Management en Comunicaciones e Infraestructurade IT

|Gtalk/Mail: consultor en eliobastias.com.ar

|Soporte & Mantenimiento ->http://goo.gl/BEvg73

|------------------------------------------------------------------------------------------------
Los precios cotizados por el equipamiento están expresados en Dólares
Estadounidenses e incluyen todos los impuestos vigentes que gravan este
tipo de operaciones, excepto el Impuesto al Valor Agregado (I.V.A.) que, en
caso de corresponder, será adicionado en el porcentaje que establezca la
ley al momento de realizar la facturación. Los precios resultantes de la
presente serán pagaderos en dólares estadounidenses billete o en su defecto
en pesos, según cotización del dólar libre tipo vendedor del Banco de la
Nación Argentina del día inmediato anterior al de efectivo pago.
Referencia: www.bna.com.ar
|------------------------------------------------------------------------------------------------
Este mensaje y, en su caso, sus archivos adjuntos, son informaión
confidencial enviada para uso exclusivo de su destinatario. Está
terminantemente prohibida la lectura, copia, duplicado o reenvío de esta
información por parte de cualquier persona distinta del destinatario. Si
usted ha recibido este mensaje por error, por favor elimínelo e informe de
inmediato a su remitente.
|------------------------------------------------------------------------------------------------
Antes de imprimir, pensá en tu responsabilidad y compromiso con el MEDIO
AMBIENTE.-


Más información sobre la lista de distribución CentOS-es