Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2005
miguelogm miguelogm is offline
Miembro
 
Registrado: nov 2004
Posts: 21
Poder: 0
miguelogm Va por buen camino
Hola buenas, ya he conseguido instalar tanto mysql y Zeos sin problemas, pero al conectarme, coge bien root y password, pero en la fase de conexion me lanza la siuiente excepcion: 'SQL Error: Client does not support authentication protocol requested by server; consider upgrading MySQL client'
Supongo que se refiere a que no me soporta el protocolo 'mysql', nose como solucionarlo, el codigo que intento ejecutar es el ejemplo simple que viene en la carpeta examples\simple dentro de las librerias Zeos, que por cierto son una maravilla de la vida!.
Un saludo, y a ver si alguien me hecha un cable!
Responder Con Cita
  #2  
Antiguo 15-03-2005
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Poder: 22
keyboy Va por buen camino
Cita:
Empezado por miguelogm
Supongo que se refiere a que no me soporta el protocolo 'mysql'
Más bien se refiere a que no soporta el formato de las contraseñas que usa MySql ya que cambió en la versión 4.x. Yo he tenido ese problema al conectarme con PHP ya que el binario que se distribuye para Windows usa una versión anterior de la librería cliente de MySql. Lo que he hecho es poner la contraseña de los usuarios de MySql en el formato antiguo:

Código:
update user
set password = old_password('tu contraseña')
where user='tu usuario'
Supongo que esto te puede servir pero fíjate también en cuál es el protocolo que está usando ZEOS. En la componente TZConnection puedes escoger qué librería usar en la propiedad Protocol aunque se supone que si escoges 'MySql' a secas ZEOS usará la más reciente.

Bye
Responder Con Cita
  #3  
Antiguo 15-03-2005
miguelogm miguelogm is offline
Miembro
 
Registrado: nov 2004
Posts: 21
Poder: 0
miguelogm Va por buen camino
la verdad es que librerias, no se cual coge, segui los pasos de instalacion de Zeos, y copie las 3 librerias dll de mysql que vienen dentro del archivo zip de Zeos, mas concretamente estas 3 mysql40.dll, mysql320.dll, mysql323.dll que las he copiado en windows\system32.
El protocolo que esta usando Zeos, concretamente hay un combo que muestra los posibles, pero yo tengo elegido en este ejemplo el protocolo mysql, ya que mi objetivo es aprender a utilizar este protocolo en delphi, gracias a la maravilla de Zeos.
Voy a probar lo que me has comentado de la contraseña, a ver si paso o no de esa excepcion!!.
Luego os cuento!.
GRACIAS
Responder Con Cita
  #4  
Antiguo 15-03-2005
miguelogm miguelogm is offline
Miembro
 
Registrado: nov 2004
Posts: 21
Poder: 0
miguelogm Va por buen camino
Poniendo en el shell de mysql esas lineas que me dices me da el siguiente error: ERROR 1046: No database selected.

Porque me dice que no hay seleccionada ninguna BD?, si yo aun no he creado ninguna tabla ni nada, unicamente instale mysql y cree mi usuario! :-S....cachinssss
Responder Con Cita
  #5  
Antiguo 15-03-2005
miguelogm miguelogm is offline
Miembro
 
Registrado: nov 2004
Posts: 21
Poder: 0
miguelogm Va por buen camino
Creeis que una solucion es desinstalar la version estable de mysql-4.1.10a-win32 que tengo instalada y probar a poner la 5 a ver si rula la autenticacion, o simplemente actualizo la .dll a otra que encuentre mas moderna, o que hago...
Es que he probado a hacer la conexion yo en plan simple como ha dixho Roman mas arriba y el error sigue siendo el mismo: 'SQL Error: Client does not support authentication protocol requested by server; consider upgrading MySQL client'
Responder Con Cita
  #6  
Antiguo 15-03-2005
miguelogm miguelogm is offline
Miembro
 
Registrado: nov 2004
Posts: 21
Poder: 0
miguelogm Va por buen camino
Keyboy, he conseguido pasar la autenticacion, cambiando el protocolo de ZConnection a mysql-3.20, pero sigue fallando en la instruccion de crear la conexion:

Result := TZMySQLConnection.Create(Url, PlainDriver, HostName, Port,
Database, UserName, Password, TempInfo);

Puede ser pq no tengo ninguna tabla creada aun y el campo Database y TempInfo estan vacíos??

Pq ahora la excepcion si que es general...solo dice: 'Can not connect to SQL server' y mas concretamente es en el procedure 'TZMySQLConnection.Open'

¿Es que no se puede conectar uno al servidor sin tener aun una tabla creada?, porque entonces estoy apañao, ya que mi objetivo es crear la tabla en tiempo de ejecución!
Responder Con Cita
  #7  
Antiguo 15-03-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por miguelogm
Poniendo en el shell de mysql esas lineas que me dices me da el siguiente error: ERROR 1046: No database selected.

Porque me dice que no hay seleccionada ninguna BD?, si yo aun no he creado ninguna tabla ni nada, unicamente instale mysql y cree mi usuario! :-S....cachinssss
Quizá tú no hayas creado ninguna tabla pero la instalación de MySql sí que creó no una sino varias tablas, todas ellas en una base de de datos llamada `mysql` que se utiliza para todo el control de acceso al servidor.

Una de estas tablas es la tabla `user` en donde se almacenan los usuarios y contraseñas. Esta es la tabla que se actualiza con la instrucción UPDATE que te indicó keyboy. Pero no puedes realizar consultas a una base mientras no la selecciones. Así que antes de efectuar dicha consulta, en la línea de comandos de MySql, debes seleccionar la base `mysql`:

Código:
mysql> use mysql
// Saludos
Responder Con Cita
  #8  
Antiguo 15-03-2005
miguelogm miguelogm is offline
Miembro
 
Registrado: nov 2004
Posts: 21
Poder: 0
miguelogm Va por buen camino
gracias, ya he estado leyendo,y como bien dices esta la tabla 'mysql', mas otra que ya he creado yo para hacer pruebas que la llamo 'mydb', dentro de la cual he creado un par de tablas. Desde la linea de comandos, va de puta madre, las uso, creo tablas, meto registros, etc...mi problema es intentar hacerlo desde delphi con el componente ZConnection, que siempre da el error de Can not connect to SQL server!! en procedure TZMySQLConnection.Open;, y le da igual que antes haya entrado en el promp y haya hecho use mydb o no.
Es decir, desde la linea de comandos no hay problemas es en el codigo delphi. :-(
Responder Con Cita
  #9  
Antiguo 15-03-2005
miguelogm miguelogm is offline
Miembro
 
Registrado: nov 2004
Posts: 21
Poder: 0
miguelogm Va por buen camino
Si quieres te pongo el trozo de código del procedure open donde esta fallando, eso si tendria que mirarme antes lo de las etiquetas vB para que nadie me eche la bronca.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:11:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi