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@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@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@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@motumweb.com mailto:efraindector@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@motumweb.com <mailto:efraindector@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@centos.org <mailto:CentOS-es@centos.org> https://lists.centos.org/mailman/listinfo/centos-es <https://lists.centos.org/mailman/listinfo/centos-es>
CentOS-es mailing list CentOS-es@centos.org https://lists.centos.org/mailman/listinfo/centos-es
CentOS-es mailing list CentOS-es@centos.org https://lists.centos.org/mailman/listinfo/centos-es
CentOS-es mailing list CentOS-es@centos.org https://lists.centos.org/mailman/listinfo/centos-es