by carlos vargas » Fri Aug 01, 2014 3:30 am
mysql usa diferente engine de datos, los mas conocidos son:
innodb
myisam
de estos:
myisam es la usada por la mayoría de app web, dado que es muy veloz para hacer consultas, que es lo que mas se hacen en las web.
cuando es de este tipo, la base de datos es un solo archivo, el cual tengo entendido puede ser copiada en el dir de bases de datos para ser respaldado/restauradas.
(se puede pero no se debe)
innodb, es la usada cuando se desarrollan aplicaciones que requieren transacciones (las operaciones están aseguradas), es muy rápida para la modificación de datos.
cuando es de este tipo, la base de datos son tres archivos, como podemos ver en un post anterior (.frm, .MYD, .MYI), en este caso no sirve copiar los archivos para hacer respaldo, para hacer respaldo y restauración se usan
herramientas tales como mysqldump las cuales pasan los datos a texto puro y duro, y luego se encargan de importar el texto puro y duro a mysql.
por ello te digo, olvídate que harás una app, y que tendrás un archivo de datos tipo mdb que la acompañara.
a lo sumo lo que tendrás es un instalador de tu app, y el proceso de cargar el servidor con unos datos iniciales es que en el servidor se creara la base de datos y tendras un archivo .sql (script de texto puro) el cual debera ser importado, o usando
los métodos de que tiene tdolphin para leer esos archivos de respaldo.
en muchos entornos empresariales incluso no te dejan tocar del todo el servidor, lo que haces es pedir que el administrador cree la base de datos y que que te de un usuario y clave de acceso,
ya luego tu en la pc clientes instalas tu app, modificas los parámetros de conexión y tu app se encarga de establecer la conexión, crear las tablas, view y poner los datos en ellas, o ejecutas un script que se encarge de crear las tablas, views, y los datos)
pero de cualquier forma, repito la idea de los entornos clientes/servidor es que:
el servidor esta a la escucha de conexiones por un puerto (la comunicación es por sockets), el cliente se conecta y empieza a pedir/servir información. (el cliente no sabe donde esta almacenada la info, no tiene idea.(acá los conceptos de carpetas, ficheros, indices no tienen por que importarle)
acá lo que se tiene que hacer en el firewall del servidor es abrir el puerto que usa la base de datos, por ejemplo mysql usa 3306, mssql usa el 1433, postgreesql 5433, firebirdsql el 3050.
esto es para que pueda fluir la información sin problemas.
ahora si deseas conexión por Internet, deberás abrir esos mismo puertos en el firewall del router, ademas de hacer el direccionamiento de puertos (port_forwarding) para derivar todas las comunicacion de un puerto hacia el servidor.
incluso en algunos router existe lo de publicar un servicio. (para esto hay que saber un poco de direcciones ip, protocolos, etc).
es por ello que para un programador que solo se dedica a ello se le complica un poco establecer un entorno de desarrollo para este tipo de app C/S (maxime si solo es programador y no ha hecho sus pinitos en redes)
(me acuerdo que una implementan de ads server 7 en un server 2003 en una red local fue toda una batalla, la hice unas tres veces y siempre cometía mis buenos errores).
otra cosa, algo a tomar en cuenta es que cuando se usa mysql embebido la comunicación no es por sockets.
esto es lo que recuerdo de mis lecturas.
salu2
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)