Ping a BBDD SQLServer en PHP
3 seguidores
Hola, estoy intentando conectar a una Base de datos SQLServer desde php con la siguiente funcion:
<code>$conn=mssql_pconnect($msserver, $usrname, $passwrd);
Vale, no me conecta, mustra el siguiente error:
Warning: mssql_pconnect() [function.mssql-pconnect]: Unable to connect to server: ...</code>
Para ver posibles problemas, quiero hacer PING a esa base de datos. ¿Puedo hacero en PHP? ¿Como?
Muchas gracias.
portishead
Tenias toda la razón en lo del puerto pero no ha cambiado en nada nuestra situacion.
¿Pero es que esto no tiene solucion?...uufff!!!
portishead
Ok, probare a especificar ese puerto en la conexión y preguntaré al administrador si lo tiene abierto.
Usuario desconocido
el puerto por defecto para mssql es 1433 no 1434.
portishead
dagi3d
mirando en la documentación oficial proponen varias soluciones para este problema. una es poner una versión más reciente del fichero ntwdblib.dll en el bin de apache y otra instalar los componentes MDAC (que ni idea de qué es eso)
También tienes que comprobar que estás accediendo al puerto correcto
http://es2.php.net/function.mssql-connect
estamos accediendo por el puerto por defecto de SQLserver , el 1434, asi q creo que es el correcto.
De todos modos echare un vistazo a esa documentacion.
Gracias a los dos!!
portishead
angelphp
Probar a conectaros con un cliente mssql desde la maquina que lanzais el script.
Hablar con el administrador del servidor windows y preguntarle:
1.- el usuario y password que os dio esta habilitado para conexiones remotas ?
2.- el servidor mssql esta habilitado para conexiones remotas ?
3.- El servidor windows tiene algun firewall que bloquee vuestro acceso ?
1. No lo está pero el mismo archivo php ha sido probado en su servidor y tampoco ha funcionado
2. Lo mismo que antes.
3. Por lo visto no lo tiene.
No se si sirve de pista pero ellos tienen una aplicación .asp con el mismo usuaro de BBDD e instalada en el mismo servidor y no hay ningún problema a la hora de conectar. Por eso se nos hace tan extraño que usando la misma conexion no funcione por el mero echo de ser php. No se, es que es muy raro.
dagi3d
mirando en la documentación oficial proponen varias soluciones para este problema. una es poner una versión más reciente del fichero ntwdblib.dll en el bin de apache y otra instalar los componentes MDAC (que ni idea de qué es eso)
También tienes que comprobar que estás accediendo al puerto correcto
http://es2.php.net/function.mssql-connect
Usuario desconocido
Probar a conectaros con un cliente mssql desde la maquina que lanzais el script.
Hablar con el administrador del servidor windows y preguntarle:
1.- el usuario y password que os dio esta habilitado para conexiones remotas ?
2.- el servidor mssql esta habilitado para conexiones remotas ?
3.- El servidor windows tiene algun firewall que bloquee vuestro acceso ?
txuma Plus
UP!
A ver si algún mago puede echar una mano al amigo Pedro, que su pan (y el mío) dependen de esto.... :)
portishead
Segimos con el mismo problema. Ahora estamos probando a hacer otra cosa:
-Hemos establecido una VPN para conectar mi maquina con su servidor.
-Hago ping a la BBDD desde mi ordena con la VPN en marcha y la respuesta es afirmativa
Pero el problema persiste al ejecutar el script php para comectar con su BBDD:"Unable to connect to server: 127.0.0.1 in C:\AppServ\www\conexion\conexion.php"
¿Alguna idea?
portishead
dagi3d
si estás en la misma máquina, prueba a conectar con localhost o 127.0.0.1
Nada, tampoco.
dagi3d
si estás en la misma máquina, prueba a conectar con localhost o 127.0.0.1
portishead
angelphp
Nos puedes poner el contenido de las variables que le pasas a mssql_pconnect ?
Que nombre de servidor le estas pasando ?
Existe ?
Lo resuelve bien ?
Probaste a pasarle la IP ?
MSsql esta configurado para aceptar conexiones externas ?
El user-pass tienen permisos para conexiones externas ?
Tienes algun firewall en el windows donde esta MSsql ?
...
- Me estoy conectando con la IP de la base de datos.
-No, no esta configurado para aceptar conexiones externas, pero el archivo lo estoy probando desde el propio servidor
- No se si tendra algun firewall el windows donde esta, preguntaré al administrador. No se si sirve de ayuda que en el servidor existe una aplicacion .asp que conecta perfectamente con la base de datos.
¿Alguna idea?
Usuario desconocido
Nos puedes poner el contenido de las variables que le pasas a mssql_pconnect ?
Que nombre de servidor le estas pasando ?
Existe ?
Lo resuelve bien ?
Probaste a pasarle la IP ?
MSsql esta configurado para aceptar conexiones externas ?
El user-pass tienen permisos para conexiones externas ?
Tienes algun firewall en el windows donde esta MSsql ?
...
portishead
Mira,
Warning: mssql_pconnect() [function.mssql-pconnect]: Unable to connect to server: nombreSrver in \DatosNew2\20_05_08.php on line 9
y nada mas.
dagi3d
cual es el error completo que te suelta?
portishead
Se que la conexión fallo, por el warning que me lanza. El problema es que no se pq falló, ya que el warning me muestra muy poco informacion, y la funcion<em> mssql_get_last_message()</em> no me tira nada.
Entonces claro, ando un poco a ciegas.
¿Tiene algun consejo de por donde tirar?
Gracias
dagi3d
ten en cuenta que cuando haces un ping lo haces a un host y no a un host+puerto por lo que esto no te garantiza que el servicio esté disponible(el host puede ser accesible pero el servidor de la base de datos puede estar caido)
para controlar si la conexión tuvo éxito o no deberás comprobar el resultado devuelto por la función mssql_pconnect, que devolverá false si falló. y si lo quieres es que no muestre el warning, pon una arroba al llamar a la función: @mssql_pconnect