viernes, 31 de julio de 2009

Ejecutar script sql en MySql

Tengo que administrar una base de datos en la que se utilizan varias tablas auxiliares para generar informes y otras cosas, entonces todos los días esas tablas las tengo que limpiar.


Como en el servidor ya tengo un cron con un script para borrar algunas carpetas temporales, la idea es agregar algo al script para que también me borre las tablas auxiliares.




Los pasos son generar un .sql que me borre las tablas. Seria algo así




use basededatos;


truncate tabla_auxiliar1;


truncate tabla_auxiliar2;


......




Esto lo guardamos en un archivo llamado script.sql (o como quieran llamarlo)




luego en el script que ya tenemos que nos borra las carpetas auxiliares agregamos lo siguiente.




mysql -u usuario_con_derechos -pcontraseña basededatos < script.sql




Con esto cuando se ejecute el script nos borrara las tablas.



Volver al inicio

4 comentarios:

Care Mao dijo...

Pero eso dejaría tu base de datos un poco expuesta, pues había un archivo de texto plano con la contraseña de la base de datos... hay alguna otra manera?

Néstor Lesna dijo...

Si estoy de acuerdo, que ese archivo estaría con la contraseña en blanco, pero deberías de tenerlo restringido por sistema operativo, por ejemplo con permiso de lectura para un usuario en particular.
Esto la idea es que sea automático sin interacción del un usuario por eso que tenes que poner en el archivo la contraseña, ademas no deberías de tenerlo en un equipo que este expuesto.

jose vargas dijo...

hola...
sabrías como desde ese escript llamar a otros... me explico... que existan 5 script cada uno de ellos crea una tabla... para no hacer el llamado a cada uno de ellos, como podria crear un script que llame a los otros 5??? te lo agradecería mucho

Néstor Lesna dijo...

José, se me ocurren 2 soluciones, una es crear los 5 .sql, y luego crear un sh que tenga las 5 lineas con mysql -u .....

La segunda opción es crearte los 5 sql como los necesites, y luego ejecutar source "miscript1.sql","miscript2.sql", esto ultimo tenes que fijarte bien la sintaxis de source, porque te la estoy diciendo de memoria.

Saludos y suerte