[Lazarus-es] Felicidades y una Consulta
Eduardo Lopez
dar_alle en yahoo.com.ar
Sab Ene 19 17:36:24 CET 2008
La clave del problema está en la configuración de seguridad de mysql.
En forma predeterminada, no se permite que el usuario root se conecte
remotamente al servidor. Es decir debes hacerlo directamente en el
server o abrir una consola por ssh.
Luego, puedes abrir una consola de mysql con el comando:
mysql -u root -p
te va a solicitar la contraseña y te va a dejar en el prompt de mysql,
alli podrás crear las bases y tablas que desees.
Luego, para habilitar el acceso de los equipos clientes debes ejecutar
el siguiente comando en la consola mysql:
mysql> GRANT ALL PRIVILEGES ON tu_basedatos.* TO 'el_usuario'@'192.168.1.10' IDENTIFIED BY 'la_contraseña'
eso permitirá la conexión de el_usuario desde el cliente con IP
192.168.1.10.
Si deseas que puedan conectarse desde cualquier IP puedes reemplazar ese
valor por el símbolo %
Saludos cordiales.
Eduardo.
José Luis Vassallo escribió:
> Buenas Eduardo, ceo que me llevas un poco de ventaja en esto de las bases.
> Me cree un host nuevo llamado "tnt.site" el problema es que no logro
> que el mysql me habra este host para crear las bases, debo estar
> haciendo algo mal en el mysql y miro la documetacion y no encuentro
> que hago mal. Hace mucho que trabajas con lazarus?
> Slds.
>
> El día 18/01/08, *Eduardo Lopez* <dar_alle en yahoo.com.ar
> <mailto:dar_alle en yahoo.com.ar>> escribió:
>
> La forma más sencilla es usar la IP del servidor directamente en
> los valores de Host del componente de acceso a la BD en tu programa.
> De esta forma, el programa siempre va a buscar la base de datos en
> esa dirección IP (independientemente si es el servidor o el cliente).
>
> No necesitas realizar ningún cambio de permisos en el archivo
> mysql.sock; ya que tu aplicación no tiene que "tocar" ningún
> archivo del equipo servidor.
> Las aplicaciones de BD cliente/servidor se comunican a una IP y
> puerto en particular donde el motor de BD escucha y responde
> peticiones.
> En qué lugar guarda internamente sus datos y cómo hace para
> resolver las consultas, es problema del servidor y ningún equipo
> cliente (por razones de seguridad) debe tener acceso a estas
> carpetas ni archivos.
>
> Por lo que cuentas veo que (al igual que yo) tienes experiencia en
> implementaciones con archivos ISAM, donde los programas y datos
> están en carpetas compartidas donde son accedidos simultáneamente
> por varios equipos clientes. En ese marco todos los archivos de
> datos son accedidos a la vez por los clientes conectados.
>
> En el esquema de base de datos cliente/servidor el único que
> accede al archivo(s) físico(s) de datos es el programa servidor y
> sólo él sabe donde están los mismos. Para hacer una analogía es un
> tipo en un mostrador, donde los clientes le hacen pedidos y él les
> entrega lo solicitado en el mostrador, pero nadie más que él toca
> la mercadería en depósito y sólo él sabe cómo organizarla y
> estibarla.
>
> Saludos cordiales.
> Eduardo.
>
> ----- Mensaje original ----
> De: José Luis Vassallo < jose.vassallo en gmail.com
> <mailto:jose.vassallo en gmail.com>>
> Para: Spanish version of Lazarus List
> <lazarus-es en lazarus.freepascal.org
> <mailto:lazarus-es en lazarus.freepascal.org>>
> Enviado: jueves 17 de enero de 2008, 23:43:19
> Asunto: Re: [Lazarus-es] Felicidades y una Consulta
>
>
> Gracias Eduardo, estoy avanzando a full gracias a vos.
> Tarde en responder porque se me destrozo el linux y reinstalar
> todo y hacerlo funcionar me hizo perder un monton de tiempo. Los
> componentes los logre instalar tantos los rx como los zeozde
> manejo de base de datos.
> Use como me indicaste el nfs para acceder a la carpeta desde otra
> pc (ya que me monto una mini red en casa un amigo). Mi pc es el
> server y tengo otra pc que es la workstation.
> Comparto la aplicacion y cuando intento acceder al server me salta
> un error "sql error:can't connect loca mysql server throught
> socket '/var/mysql/mysql.sock(2)', si ejecuto en la workstation el
> mysql me salta error porque no tiene la base. El error se crea
> prque tanto el server como la estacion tienen como host
> "localhost" 127.0.0.1 <http://127.0.0.1> para solucionar esto yo
> tendria que crear una en el servidor un nuevo host llamado por ej.
> "ControlStockHost" con una ip. x.x.x.x y desde la workstation
> configurar el acceso a esta? tengo que darles acceso al archivo "
> mysql.sock" del servidor?
> Disculpa mis preguntas y mis molestas master.
>
> El día 11/01/08, *Eduardo Lopez* < dar_alle en yahoo.com.ar
> <mailto:dar_alle en yahoo.com.ar>> escribió:
>
> José Luis Vassallo escribió:
> > Buenas y sigo yo el pesado. :-)
> >
> > 1) Logre instalar el componente rxlib y anda casi todo bien, el
> > problema es que en el form donde puse el componente antes de
> salir de
> > el cuando quiero cerrar el query me da el error "Project raised
> > exception class ¿EDatabaError' with message: Operation cannot be
> > perfrmed on an inactive dataset", vere si cambiando algunas
> opciones
> > logro hacer que desaparezca el error. Me despliega bien la
> información
> > eso si.
> > 2) Perdon por molestar tanto con este tema de la red.
> > En mi pc lo corro sin problemas, ya que tengo tanto lazarus
> como el
> > mysql en forma local en mi suse. Pero en lo de mi cliente
> tengo el
> > servidor y las estaciones de trabajo (todas con suse 10.3) y
> no se
> > como armar la red. En el servidor esta el mysql corriendo sin
> > problemas ahora mi problema es el sistema que desarrollo en
> lazarus lo
> > tengo que tener en cada pc (si es asi como desde la aplicacion la
> > configuro para que acceda a la base de datos del servidor y como
> > configuro la red)? o si tiene que estar mi aplicacion dentro del
> > servidor (en un directorio accesible por todos)?
> Disculpame la demora en responder, pero estuve unos días de
> vacaciones. :-)
>
> Respecto del punto 1) sólo puedo decirte que es probable que
> al cerrar
> el form estés haciendo alguna operación (tipo commit) pero el
> dataset
> está cerrado. Sólo queda revisar con detalle.
>
> Para el punto 2) paso a detallarte: Ambas opciones son posibles:
> a) Tener los binarios en un servidor junto con sus archivos de
> configuración (leído por todos los clientes), con un directorio
> compartido por NFS.
> b) Tener los binarios en cada equipo sus archivos de
> configuración
> leído sólo por el usuario.
>
> En ambos casos las bibliotecas del cliente mysql se deben
> instalar en
> todos los equipos clientes. En el punto a) la actualización
> del sistema
> es más sencilla, ya que actualizando el server, todos los clientes
> usarán la versión disponible, en b) hay que actualizar equipo
> por equipo.
>
> Actualmente, en tu equipo de desarrollo tienes configurado los
> componentes de acceso a mysql con "localhost", "tu_base_de_datos",
> "usuario", "contraseña"
> Lo que tienes que hacer es, leer estos valores de un archivo de
> configuración (que puede ser en formato INI o XML) y en la
> creación del
> Form asignarle las propiedades correspondientes al componente.
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> MySQL50Connection1.hostname := 'servidor';
> end;
>
> Por ejemplo, para leer los datos de un archivo XML de
> configuración
> puedes usar la unit XMLCfg:
>
> var
> cfg: TXMLConfig;
> ArchivoConf:string;
> begin
> ArchivoConf := 'misistema.conf';
> cfg := TXMLConfig.Create(nil);
> cfg.Filename := ArchivoConf;
> LabeledEdit_servidor.Text :=
> cfg.GetValue('BaseDatos/NombreServidor','');
> LabeledEdit_base.Text := cfg.GetValue('BaseDatos/BaseDatos','');
> LabeledEdit_usuario.Text :=
> cfg.GetValue('BaseDatos/Usuario','');
> cfg.free;
> end;
>
> Depende de tu aplicación y del nivel de seguridad que quieras
> darle,
> puedes guardar el usuario y contraseña en el archivo XML o
> bien pedirla
> en una pantalla de login.
>
> El archivo de configuración puede ser guardado donde quieras: en
> /etc/tu_archivo.conf (sólo modificable por root y válido para
> todos los
> usuarios del equipo) o en cada home del usuario, donde tendrás
> acceso
> completo al mismo y podrás utilizarlo además para guardar
> cualquier
> preferencia que desees.
>
> De esta forma podrás generar un binario único que te
> funcionará tanto en
> tu equipo de desarrollo como en el del usuario final de la
> aplicación.
>
> Saludos cordiales.
> Eduardo López.
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lazarus.freepascal.org
> <mailto:Lazarus-es en lazarus.freepascal.org>
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
>
>
> -----Sigue archivo adjunto en el mensaje-----
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lazarus.freepascal.org
> <mailto:Lazarus-es en lazarus.freepascal.org>
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
> ------------------------------------------------------------------------
>
> Yahoo! Encuentros
> Ahora encontrar pareja es mucho más fácil, probá el nuevo Yahoo!
> Encuentros.
> Visitá http://yahoo.cupidovirtual.com/servlet/NewRegistration
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lazarus.freepascal.org
> <mailto:Lazarus-es en lazarus.freepascal.org>
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es
> <http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
More information about the Lazarus-es
mailing list