Bonjour,
Je cherche à faire un cron avec requête de creation d'index pour une table mysql. Mais je ne sais pas comment faire !!! (débutant linux), quelqu'un peut il m'aider ????
Bonjour,
Je cherche à faire un cron avec requête de creation d'index pour une table mysql. Mais je ne sais pas comment faire !!! (débutant linux), quelqu'un peut il m'aider ????
Peux tu expliquer exactement ce que tu veux faire ?
Recréer un cron en mysql ou exécuter une requête mysql sous cron ? (ou autre chose)
Je voudrais créer un index dans ma bd, et je ne peux le faire que le soir. Donc je voudrais créer un cron qui execute une requete sql dans ma bd...
c'est à dire :
1- se connecter au serveur mysql et a la bd
2- executer la requete
3 (idéalement)-envoyer un mail de succès ou echec après la requête.
4- se déconnecter de la bd.
Merci, je suis nouveau sous linux et j'espere que ce que je dis est cohérent
Ok alors
dans ton cron tu mets en commande
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysql -u user_name -p password -e "commande1;commande2" > fichier_log > logiciel_denvoi_demail 2>&1
Merci beaucoup ! je vais tester ça !
Tient nous au courant
exusez mon reatrd !
Ça ne fonctionne pas !! Je n'ai pas de fichiers log. pourtant je les avaient bien spécifiés dans mon cron...
je vous donne ma ligne dans crontab:
Que veut dire /dev/null ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 00 17 * * * /root/update.cmd >> /dev/null
et voila mon fichier update.cmd
Dois je créer le fichier log manuellement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 #!/bin/sh /chemin/vers/mysql/mysql -u root -e "update ...." > /chemin/vers/log
Les permissions sont a 777 pour update.cmd ...
Ou est le problème !!
Vérifie qu'il y a bien les droit d'écriture dans le dossier du log.
Tu peux aussi créer le fichier log manuellement en mettant bien ses droits à 777.
Es-tu sur du chemin vers MySQL ?
Le /dev/null dans ton cron est inutile.
Tu peux faire plus simplement :
En changeant biensur UPDATE.cmd
Code : Sélectionner tout - Visualiser dans une fenêtre à part 00 17 * * * /root/UPDATE.cmd > fichier_log 2>&1
/dev/null signifie : tu envoi le résultat de la commande dans un trou noir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #!/bin/sh /chemin/vers/mysql/mysql -u root -e "update ...."
As tu bien utilisé crontab -e pour mettre ton cron en place ?
Enfin,
Si tu as un password avec ton mysql (sinon c'est bien la commande que tu as utilisé).
Code : Sélectionner tout - Visualiser dans une fenêtre à part /chemin/vers/mysql/mysql -u root -p password -e "update ...." > /chemin/vers/log
SALUT !
Ça fonctionne enfin, mais j'ai fait une modif un peu bizarre ! :
J'ai ajouté un mot de passe à ma bd (question de sécurité) mais la chose bizarre qui se passe est que quand je me connect avec -p password, mon fichier log m'indique que le mot de passe est incorrecte, mais quand j'utilise --password=password sa fonctionne ! (c'est censé être des synonymes !).
Voila, pour ceux qui auraient une explication ou qui tomberaient sur le même problème que moi.
Merci pour votre aide !
Non ce n'est pas tout à fait pareil : la version -- s'utilise avec --[variable]=[valeur], la version simple -p demande le mot de passe en interactif
Tout s'explique alors !
Merci beaucoup !!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager