[C con Clase] Mysql

Salvador Pozo salvador en conclase.net
Lun Jun 4 11:49:00 CEST 2012


El pasado 2012-06-03 17:50:33, Juan MIguel escribió:
 
JM> Buenas tardes,

Hola:

JM> 1/ una vez que tengo la base y la tabla, si salgo con el comando (\q), donde me ha guardado la base y la tabla el programa (uso MySQL server 6.0) en un windows 7 de 64 bits.

Generalmente, la ubicación física de la base de datos se elige durante la instalación de la de base de datos, y depende también del motor concreto que hayas seleccionado (MyISAM, InnoDB, etc).

Las tablas MyISAM se almacenan en una carpeta llamada "Data", generalmente en el disco C, pero depende de tu instalación. Para cada base de datos se crea una carpeta con el nombre de la base de datos, para tabla se crean tres ficheros dentro de esa carpeta, con el nombre de la tabla y las extensiones ".frm", ".MYD" y ".MYI".

Las tablas InnoDB se se guardan todas juntas, independientemente de la base de datos y de las tablas, en la carpeta "Data". El fichero se llama "ibdata1", hay otros ficheros auxiliares, como "ib_logfile0" e "ib_logfile1". Pero el formato y contenido de esos ficheros no tiene sentido desde fuera de MySQL, de modo que copiarlos no garantiza la integridad de los datos, y suele ser mala idea.

JM> 2/ Tengo los datos en un archivo de texto separados por comas, creo que puedo importar los datos desde el. Como hago para que en la sentencia o comando sepa donde tiene que buscar el archivo.

Si te fijas en la sintaxis de "LOAD DATA", verás que se puede especificar el origen de los datos.

http://mysql.conclase.net/curso/index.php?cap=014#IMP_IMPORTAR

Hay que poner especial cuidado en la palabra "LOCAL" si el fichero está en el mismo ordenador que el motor de la base de datos.

JM> 3/ Si al final logro hacer lo que necesito (base, tabla y consultas), como subo la misma a la red (intranet de la oficina), la base completa, la consulta, que es lo que debo subir. Pues los empleados solo deben de acceder a la funcionalidad que les permita busca a otro compañero por los parametros de las dos consutas antes mencionadas. En access puedes hacer que al abrir la base de datos solo salga un formulario, con los botones necesarios dos en este caso, uno para cada consulta, y el pinchar en el te pida que ingreses los apellidos y te devuelve los datos coincidentes de la tabla, sin que se puedan modificar por el personal que realiza la busqueda.

MySQL no funciona igual que Access, en el sentido de que el interfaz de usuario no forma parte del programa ni de los datos. MySQL sólo se encarga de manejar datos, almacenarlos de una forma eficaz y segura, y permitir un acceso rápido.

Los interfaces se suelen hacer en otros lenguajes, como PHP, Perl, C, C++, etc.

Para una intranet tal vez sea mejor usar un lenguaje como PHP, que permite hacer las consultas con la base de datos e interactuar con el usuario, procesar sus peticiones (formularios) y presentar los datos obtenidos.

Por ejemplo, esta lista de correo, en su formato de foro, está escrito en PHP, y los datos almacenados en bases de datos MySQL.

Evidentemente, para eso tu servidor de Intranet debe tener instalado un servidor HTML (como Apache), un motor de base de datos MySQL, y el intérprete PHP. Si tienes opción, una buena idea es instalar PhpMyAdmin:
http://www.phpmyadmin.net/home_page/index.php

Se trata de un administrador de bases de datos para MySQL escrito en PHP. Mediante este administrador puede crear, modificar y administrar bases de datos en tu servidor. Dispone de herramientas que te permitirán exportar e importar datos de forma sencilla.

Si no dispones de PHP, puedes diseñar tu interfaz en C, usando el API C de MySQL:

http://c.conclase.net/mysql/index.php

Cada programa C puede acceder a una base de datos remota, situada en tu servidor de Intranet, que puede ser cualquier equipo conectado a la red, que esté funcionando y disponga de un servidor MySQL.

Como eres tu el que tiene que diseñar la interfaz, serás tu el que impida o permita que los usuarios hagan ciertas cosas. Puedes crear un sistema de permisos y privilegios, de modo que ciertos usuarios tengan acceso a actualizaciones y otros no, etc. O crear interfaces diferentes para cada tipo de usuario.

JM> Como veis son muchas las dudas y cada vez que aclaro algo me surgen mas, espero haberme explicado medianamente bien y estoy deseando recibir vuestros comentarios y claro la ayuda

El tema es muy extenso, y como ves, requiere el dominio de muchas disciplinas diferentes. No te agobies, y tómalo con calma :).

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase