Conectar a mysql desde asp

Quiero conectar desde una página en asp a una base de datos mysql, la página esta alojada en un servidor windows, mientras que la base de datos esta alojada en un servidor linux, utilizo esta cadena de conexión:
Con.Open "Driver={MySQL};Server=nombre servidor;Port=puerto elegido;Option=131072;Stmt=;Database=nombre de la base de datos;Uid=usuario;Pwd=contraseña usuario;"
Pero cuando ejecuto la página en asp, el navegador se queda intentando hacer algo indefinidamente pero no me da ningún problema ni tampoco me ejecuta la consulta que quiero que haga.
¿A qué puede deberse esto?.
5

5 Respuestas

591.125 pts. Licenciado en Informática
Eso es que no te está dejando acceder a la BD por algún motivo. Comprueba que el puerto está escuchando en el Linux.
También puedes optar por hablar con Arsys, pues es posible que tengan bloqueado el hecho de que te conectes a otra BD que no sea de las suyas (lo pueden hacer). Quizás ellos te pueden dar una solución más concreta, pero yo me decantaría por el servidor que está escuchando. Le das una IP?... Haz un ping a ver si te
Efectivamente cuando lo subo a mi servidor de arsys me da error 500, pero cuando lo hago de forma local en un servidor iss que tengo instalado, se queda la página pensando sin hacer nada.
Efectivamente le doy una ip y le he hecho un ping y el servidor me responde, la verdad es que no se que puede ser porque creo que la conexión está bien hecha, con referencia a arsys los he llamado ya y la respuesta que me han dado es que si se puede conectar a una bd mysql externa a ellos con esta cadena de conexión: miconexion.Open ("driver=mysql;server=IP del servidor MySql;uid=usuario;pwd=contraseña;database=base_de_datos");
Pero no se no me inspiran mucha confianza.
Lo mejor es que actives en tu navegador lo de ver los errores en secuencias de comandos, con lo que podrás acercarte un poco más al problema concreto. Sigo pensando que es algo de que el server no está escuchando, o no permite entradas de sistemas periféricos a la propia BD.
Suerte!
Si no te da ningún error más concreto, pon el controlador de secuencias de comandos, para ver más concretamente cual es el error que te da. Tal y como lo cuentas, no hay error de BD, es que ni siquiera está encontrando la página!... ¿Te da error 404 o 500?
Pues muchísimas gracias seguiré probando a ver si hay suerte
Le he cambiado el puerto por el 3306 que supongo que es el puerto por defecto de mysql y ahora directamente me dice que no puede mostar la página, este es el código completo por si así me puede ayudar mejor:
<%@LANGUAGE="VBSCRIPT"%>
<html>
<head>
<title>Borrado de Alumnos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Driver={MySQL};Server=ip;Port=3306;Option=131072;Stmt=;Database=producto;Uid=root;Pwd=edrtaller;"
sql= "select * From producto "
set rs=con.execute(sql)
%>
<table width="75%" border="1">
<%while not rs.EOF %>
<tr>
<td><%=rs.Fields("cod_producto")%></td>
<td><%=rs.Fields("nproducto")%></td>
</tr>
<%rs.MoveNext
wend%>
</table>
<%con.Close%>
</body>
</html>
Es posible que no tengas los puertos de escucha abiertos en la máquina Linux . Prueba a hacer ping sobre la máquina de la BD a ver que te responde, o prueba con esta cadena:
"Driver={mySQL};Server=IP_DE_TUSERVIDOR_O_NOMBRE_DEL_SERVER_LINUX;Port=3306;Option=131072;Stmt=;Database=my-database;Uid=username;Pwd=password;"
Suerte
4.925 pts. LLevo 4 años trabajando en ASP, COM+, SQL Server,he...
¿Puedes ponerme el trozo de código donde se realiza esa consulta?, así podré ver que ocurre.
<%@LANGUAGE="VBSCRIPT"%>
<html>
<head>
<title>Borrado de Alumnos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Driver={MySQL};Server=ip;Port=3306;Option=131072;Stmt=;Database=producto;Uid=root;Pwd=edrtaller;"
sql= "select * From producto "
set rs=con.execute(sql)
%>
<table width="75%" border="1">
<%while not rs.EOF %>
<tr>
<td><%=rs.Fields("cod_producto")%></td>
<td><%=rs.Fields("nproducto")%></td>
</tr>
<%rs.MoveNext
wend%>
</table>
<%con.Close%>
</body>
</html>
Como puedes ver es algo sencillo ya que por el momento estoy haciendo pruebas.
No se si ya habrás echo esto:
Para conectarte a una base de datos desde MySQL necesitas descargarte de la web de MySQL el controlador MyODBC para conectar a la base de datos a través de las ODBC.
Te adjunto las direcciones:
Para NT/2000/XP
http://www.verio.es/support/vps/virtual/mysql/odbc/drivers/myodbc-2.50.19-NT.zip
Para 95/98:
http://www.verio.es/support/vps/virtual/mysql/odbc/drivers/myodbc-2.50.19-win95.zip
Luego la cadena de conexión seria la siguiente.
Set conn = Server.CreateObject ("ADODB.Connection")
strCon = "Driver={MySql}; Database=nombre_base_datos; UID=su_UserID; PWD=su_Password"
Conn. Open strCon
Si ya lo has echo confírmamelo para ir desechando posibilidades.
51.350 pts.
El pedido de conexión se tiene que estar perdiendo por el camino. Probá la conexión por fuera de la aplicación, con un DSN y fíjate si anda.
397.400 pts. Que quieres que te diga, desde pequeño arreglaba...
Ese código es correcto, yo lo que creo que deberías ejecutar alguna consulta correcta y siempre que existan datos y la configuración sea correcta todo te irá bien.
Si buscas algo o necesitas despojarte de un articulo ve a www.misubasta.net
y obtén beneficios ahora mismo.
En MiSubasta.net encontraras todos esos artículos nuevos, de segunda mano o
simplemente los que no quieres por cualquier razón.
Podrás vender :
- Tu casas
- Tus Cómics
- Tu viejo o nuevo ordenador
- Tu mesita de noche
- Tu cámara de fotos
- Un sello antiguo
- Tu móvil
- Software
- Todo lo que quieras vender
Necesitamos tu ayuda para que esta Web crezca día a día, entre y gana 10
euros.
56.050 pts.
Parece ser que el asp interpreta que la base se encuentra en el mismo servidor que él.
Proba éste código:
DSN = "Driver={Mysql}; Server=servidor donde está alojada la base;" &_
"Database=nombre de la base;" &_
"UID=nombre de usuario;" &_
"PWD=contraseña"
set db = Server.CreateObject("ADODB.Recordset")
query = "SELECT * FROM tabla"
Db. Open query, dsn, 1
Este código abre la base y muestra todos los registros en una tabla.
Espero te sirva. Atentmanete. Manuel Fernández.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas