Exécution auto d'un script SQL sur un serveur MySQL

Exécution auto d'un script SQL sur un serveur MySQL - SQL/NoSQL - Programmation

Marsh Posté le 27-07-2004 à 11:05:05    

J'ai deux tables à vider chaque jour à 10 h sur un serveur MySQL. Je pensais passer par MySQL Front en le lançant avec comme paramètre le fichier SQL à éxécuter, mais après il faut encore appuyer sur un bouton avant que le script se lance. Comment faire pour tout automatiser et ne plus avoir à toucher à ça ?
 
Merci d'avance.


---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 27-07-2004 à 11:05:05   

Reply

Marsh Posté le 27-07-2004 à 11:06:43    

On m'a dit qu'on pouvais utiliser les Cron Tabs pour executer des script a des horaires voulu ... mais faut etre sur linux ... Sur windows ... P-e une tache planifiée?

Reply

Marsh Posté le 27-07-2004 à 11:16:13    

Tout tourne sous Windows (c'est pas moi qui ait choisi, sorry), donc le Cron, faut oublier. Je pense que c'est faisable avec une tâche planifiée. Le problème, c'est que si je fais une tâche planifiée qui lance MySQL Front avec mon script SQL en param, le script s'éxécute pas tout seul, il faut une intervention d'un utilisateur pour lancer l'éxécution.
 
Peut être en faisant une tâche planifiée directement sur le serveur, mais je suis pas qur et vu que c'est un serveur de prod, j'ai pas trop droit à l'erreur ni eu test. Le serveur MySQL est un EasyPHP, il y a donc également Apache qui tourne sur la machine. Peut être je pourrai creuser de ce côté là.
 
Pour être exact, le but du jeux est de vider deux tables d'une base de données, puis de lancer un éxécutable qui remet les données à jours avec un fichier CSV reçu par FTP un peu plus tôt dans la matinée. On reçoit le fichier CSV tous les jours à 9h30 maxi, donc ce que je veux c'est faire un script (.bat) avec une tâche planifiée dessus qui éxécute le script SQL pour vider les tables, puis lance l'éxécutable d'import, qui sait lui fonctionner en mode full auto.
 
Je saurai faire ça en Delphi, VB, ou une autre langage, mais j'ai pas la licence dans ma boite :cry:


---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 27-07-2004 à 11:31:14    

Quand je parlais de truc automatique je penssais a une tache qui lance un ficher php qui vide ta table ... parcontre je sais pas comment on fais pour lancer le .php ... p-e avec un raccourcis IE ? :??:

Reply

Marsh Posté le 27-07-2004 à 11:49:40    

Euh... en quoi le cron est-il proscris sous windows? :heink: y a plein de portages qui existent.


Message édité par gizmo le 27-07-2004 à 11:49:50
Reply

Marsh Posté le 27-07-2004 à 11:52:57    

Je connais mal le systeme de cron tabs , mais j'ai lu qu'il etait utilisable sur les systeme unix .. Mais si ca existe sur windows encore mieux :) (enfin, encore + pratique )

Reply

Marsh Posté le 27-07-2004 à 14:55:10    

De ce que je sais, Cron est un système de gestion des tâches planifiées, comme celui intégré dans Windows non ? Si il sait faire plus de choses, comme éxécuter des scripts SQL sur un serveur donné, alors ça m'interesse effectivement, mais je crois pas que ce soit le cas.
Il doit être capable de lancer une application ou un fichier, mais pas de lire un script SQL etc...


---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 27-07-2004 à 14:56:38    

il est effectivement capable lancer des application ou scripts à heures/jours demandé, et de là rien ne t'empèche de lancer un script SQL en ligne de commande. Y a pas que MySQL-front dans la vie...

Reply

Marsh Posté le 27-07-2004 à 16:12:23    

Oui ça j'imagines bien que MySQL Front est pas le seul logiciel qui puisse me secourir, c'est bien pour ça que je pose la question sur le forum : pour en apprendre un peu plus sur ce sujet. :)
Donc je repprend : si je veux faire un vidage de mes deux tables en lançant une tâche planifiée sur le serveur, je vais lancer une commande qui fait appel au serveur MySQL, avec le script en paramètre. Voici le script que je propose :  
 

Code :
  1. # Sélection de la base de données
  2. USE `ma_base`
  3. # Suppression des enregistrements de la table1
  4. DELETE FROM table1;
  5. # Suppression des enregistrements de la table2
  6. DELETE FROM table2;


 
Est-ce que ça vous parait bon ? Je pense que oui pour les requêtes de suppression, c'est surtout pour le choix de la base que j'ai un doute...


Message édité par Kortex@HFR le 27-07-2004 à 16:12:55

---------------
Au coeur du swirl - Mon feed
Reply

Marsh Posté le 27-07-2004 à 16:18:29    

pas besoin d'utiliser mysql front. tu peux certainement lancer ton script en ligne de commande avec via un batch  
 
mysql.exe < script.sql


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-07-2004 à 16:18:29   

Reply

Marsh Posté le 27-07-2004 à 16:33:31    

bon, j'ai un fait un .bat, que j'ai mis dans le rep mysql\bin, avec le script à coté. en faisant :
 
type script_voulu.sql | mysql -u user_voulu
 
ça fonctionne, le tout dans une tâche planifiée, c'est cool :)
 
Merci pour votre aide. :jap:


---------------
Au coeur du swirl - Mon feed
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed