Acceso a db Firebird a través de Internet

478 views
Skip to first unread message

Ultraton500

unread,
Jan 8, 2019, 1:47:47 AM1/8/19
to Comunidad de Visual Foxpro en Español
Buen día a todos.

Estoy intentando conectarme a una db de Firebird a través de Internet, utilizo la librería FoxyDB e hice lo siguiente:

- En la máquina servidor instalé el motor de Firebird y coloqué la db.
- Verifiqué que el puerto 3050 está abierto.
- Configuré los parámetros de conexión de la siguiente manera:

oDb.handle_driver   = oDb.driver_firebird

oDb.handle_server   = "181.14.182.101"

oDb.handle_user     = "sysdba"

oDb.handle_password = "masterkey"

oDb.handle_database = "asliasdb"

oDb.handle_port = "3050"

oDb.engine = oDb.fireBird

Pero obtengo el código de error -1 (No se puedo conectar al servidor).

Alguien podría indicarme qué me está faltando o qué estoy haciendo mal?

Desde ya agradezco sus comentarios.

Saludos cordiales.
Javier.

Carton Jeston

unread,
Jan 8, 2019, 2:53:51 AM1/8/19
to Comunidad de Visual Foxpro en Español
¿que version tienes instalada de firebird? A partir de la 3 se suele usar por defecto otro puerto.

mapner

unread,
Jan 8, 2019, 4:44:21 AM1/8/19
to Comunidad de Visual Foxpro en Español
Ultraton500,
Quizá te conviene testear con la forma tradicional nativa de VFP para conectar ODBC para capturar el error o descartar que se problema del Servidor FB o del cliente ODBC

cStrCon = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=181.14.182.101:aliasdb;"
nConn = SQLCONNECT(cStrCon)
IF nConn < 1
AERROR(aEx)
MESSAGEBOX(aEx[2]) && muestro mensaje de error original remitido por el motor de Firebird 
ENDIF

Carton Jeston,
que interesante lo que dices, el puerto default que viene con Firebird out-of-box es 3050 en todas sus versiones (1.x, 2.x, 3x), solo si el servidor Firebrd se ha instalado en forma intencional con otro puerto distinto al default, lo debes explicitar en el string de conexión desde el cliente, ejemplo (utilizando puerto 3051)
cStrCon = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=181.14.182.101/3051:aliasdb;"

Saludos!

Edwin Duran

unread,
Jan 8, 2019, 8:13:48 AM1/8/19
to Comunidad de Visual Foxpro en Español
verifica si en el router estan abierto los puertos, en algunos router, no permiten que pruebes estando en la misma red.

Saludos 
edwin

Carton Jeston

unread,
Jan 8, 2019, 10:21:33 AM1/8/19
to Comunidad de Visual Foxpro en Español
Mapner, respecto al puerto hubo una circustancia que no tuve en cuenta y que hizo que cambiara "solo" el puerto.

Tenia instalado la version 2.5 y puse la 3, asi que imagino que lo cambio para no dar conflicto.

Lo suyo es usar alguna aplicacion para edicion de datos, hacer ahi la conexion y ya ir descartando.

Dsan

unread,
Jan 9, 2019, 7:18:07 AM1/9/19
to publice...@googlegroups.com
Hola

Yo mas creo que tu error esta aqui:   oDb.handle_database = "asliasdb"
tu base de datos le tenes que decir en donde esta en el servidor o sea en que Carpeta, y revisa los puerto en firewall si estas haciendo pruebas local o red, como te indican los demas señores.

Saludes

Dsanchez

mapner

unread,
Jan 9, 2019, 10:35:46 AM1/9/19
to Comunidad de Visual Foxpro en Español
Hola DSanchez,

Firebird desde la versión 1.5 permite utilizar "alias"de bases de datos en vez de rutas de disco (esto es para no exponer al cliente estructura del servidor)
Estos alias  deben ser especificados en el archivo aliases.conf en el directorio de instalación del motor, en ese archivo se configura de la siguiente manera (ejemplo)
aliasdb = C:\DATOS\MiDBFB.FDB

Saludos

Dsan

unread,
Jan 10, 2019, 12:39:36 AM1/10/19
to publice...@googlegroups.com
Hola MapNer

Ya era hora que lo cambiaran en el 2013, le tire duro a una versión, pero al final opte por Mysql.

Slds

Dsanchez

Ultraton500

unread,
Jan 10, 2019, 3:24:04 AM1/10/19
to Comunidad de Visual Foxpro en Español
Muchas gracias por sus respuestas. Me he demorado en responder porque en todo este tiempo no pude tener acceso a la máquina remota que uso como servidor.
Siguiendo el consejo de mapner intenté lo siguiente:

lnHandle SQLStringConnect("DRIVER={Firebird/InterBase(r) driver};SERVER=181.14.182.101;USER=SYSDBA;PASSWORD=masterkey;DATABASE=aliasdb;")
lnHandle SQLStringConnect("DRIVER={Firebird/InterBase(r) driver};SERVER=181.14.182.101/3050;USER=SYSDBA;PASSWORD=masterkey;DATABASE=aliasdb;")
lnHandle SQLStringConnect("DRIVER={Firebird/InterBase(r) driver};SERVER=;USER=SYSDBA;PASSWORD=masterkey;DATABASE=181.14.182.101:aliasdb;")
lnHandle SQLStringConnect("DRIVER={Firebird/InterBase(r) driver};SERVER=;USER=SYSDBA;PASSWORD=masterkey;DATABASE=181.14.182.101/3050:aliasdb;")

entre otras combinaciones de la IP, el puerto y el alias pero nunca pude conectarme. Probé con la ruta de la db en lugar del alias pero tampoco pude.

No sé qué mas probar por lo que valoraré mucho cualquier ayuda o sugerencia que puedan brindarme. Uso Firebird 2.5.

Saludos.
Javier.

mapner

unread,
Jan 10, 2019, 1:59:27 PM1/10/19
to Comunidad de Visual Foxpro en Español
Ultraton500,

Sería bueno que nos mandes el mensaje de error que capturas cuando no puedes conectarte, de los ejemplos el último estaría correcto pero, si el puerto usado es el estandard 3050 no hace falta explícitarlo, y la entrada Server= no hace falta que lo indiques ya que en la entrada Database= ya específicas la IP del servidor.
Pero la gran pregunta es si tú error es de conexión de red con el servidor desde una máquina cliente. Para descartar que el servidor este funcionando bien deberías probar con algún aplicativo "dentro" del propio servidor, si conecta ok, el problema debe ser puerto bloqueado o ruteo de red. Para probar en forma interna usa cualquier utilitario manejador de Firebird con FlameRobin o IbExpert.
Saludos

Ultraton500

unread,
Jan 12, 2019, 3:07:37 AM1/12/19
to Comunidad de Visual Foxpro en Español
Hola mapner, muchas gracias por la ayuda.

Me sige resultando complicado conseguir una máquina remota para hacer pruebas y no quiero hacer pruebas en casa intentando conectarme desde y hasta la misma IP para evitar cualquier problema extra a los que ya tengo.
De todas formas pude hacer pruebas y el error (obtenidio con Aerror) es siempre el mismo:

1526
Connectivity error: [ODBC Firebird Driver]Unable to complete network request to host "190.138.103.251".
[ODBC Firebird Driver]Unable to complete network request to host "190.138.103.251".
Failed to establish a connection.
08004
-9021
.NULL.

Anteriormente me olvidé de aclarar que en el servidor tengo instalado SQLManager y puedo conectarme a la db sin problemas, también tengo instalado vfp y también puedo conectarme. Incluso esta vez deshabilité en ambas máquinas el antivirus y el firewall de windows y verifiqué que el estado del puerto 3050 del servidor es "Listening".
Pude encontrar varias referencias a este error pero de las posibles soluciones que visto hasta ahora ninguna se aplica en mi caso.

Tendré que seguir investigando y cualquier novedad estaré comentando. De igual manera si a alguien le pasó y pudo solucionarlo estaré muy agradecido si me comparte su experiencia.

Saludos y gracias mapner nuevamente.
Javier.

HernanCano

unread,
Jan 12, 2019, 1:03:04 PM1/12/19
to Comunidad de Visual Foxpro en Español
Veo que estás utilizando alias. Por ese lado yo prefiero desviarme (tal vez más adelante miremos algo, pero por ahora no).

Si pruebas lo que te dice DSanchez, podemos intentar resolver (según los mensaje de error).


mapner

unread,
Jan 12, 2019, 3:32:36 PM1/12/19
to Comunidad de Visual Foxpro en Español
Ultraton500,
El.mensaje de error es claro, no puede resolver la conectividad de red al host que le indicas, o sea, no es tema de uso de alias, y no es tema de buen funcionamiento de la BD o del motor del servidor ya que dices que en forma local funciona ok.
Lo que queda es ver si el puerto 3050 o el que uses esté abierto a conexiones desde el exterior y si está bien ruteado. También revisaría que las versiones de motor de servidor y de cliente sean las mismas (he visto instalaciones donde el servidor es 2.5 y el cliente 1.5 y eso no funciona) pero.mas que seguro es que tú puerto no está abierto al exterior o tienes algún filtro de red en los extremos de la conexión. Simple pregunta, el PING al host responde bien?

Ultraton500

unread,
Jan 16, 2019, 1:23:29 AM1/16/19
to Comunidad de Visual Foxpro en Español
Hernan, mapner, gracias nuevamente por sus comentarios.

Espero que no tomen a mal la demora de mi respuesta, este asunto requiere de disponer de otra conexión para realizar pruebas y eso sigue siendo dificultoso de conseguir para mi.
Hice la prueba de abrir el puerto no solo en el servidor sino en el módem hasta que descubrí que ni siquiera los ping desde otras conexiones hacia el servidor están funcionando, algo que cometí el error de pasar por alto. Todavía estoy intentando descubrir el por qué.

Además de seguir investigando me queda consultar al proveedor de Internet (Universo Net (ex-Arnet) ) para ver si alguna característica del módem puede estar ocasionando algún tipo de bloqueo, no creo, pero tengo que agotar los recursos.
En caso de algún avance estaré comentando para que en el futuro pueda serle útil a alguien en la misma situación.

Nuevamente gracias y perdón por demorarme en contestar.

Saludos cordiales.
Javier.
Reply all
Reply to author
Forward
0 new messages