Mysql avec crontab
Résolu/Fermé
MrSlave
-
25 avril 2008 à 14:31
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 25 avril 2008 à 15:16
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 25 avril 2008 à 15:16
A voir également:
- Mysql crontab
- Mysql community server - Télécharger - Bases de données
- Le paquet « mysql-server » n'a pas de version susceptible d'être installée ✓ - Forum Debian
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
- Crontab toutes les heures ✓ - Forum Shell
4 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
25 avril 2008 à 14:50
25 avril 2008 à 14:50
Salut,
pas besoin de script shell
voici un exemple
j'écrit un fichier .sql
et je le lance avec la commande mysql -u root -p'mot de passe' < fichier.sql
Dans mon cas je n'ai pas le mot de passe donc il suffit
mysql -u root -p < fichier.sql
Et je fait entrer à la demande de mot de passe
Le fichier db_abc.sql
Le résultat des tests
pas besoin de script shell
voici un exemple
j'écrit un fichier .sql
et je le lance avec la commande mysql -u root -p'mot de passe' < fichier.sql
Dans mon cas je n'ai pas le mot de passe donc il suffit
mysql -u root -p < fichier.sql
Et je fait entrer à la demande de mot de passe
Le fichier db_abc.sql
lami20j@debian:~$ cat db_abc.sql CREATE DATABASE abc; USE abc; create table personne(id int NOT NULL auto_increment,nom varchar(30),prenom varchar(50),age int,primary key(id));
Le résultat des tests
lami20j@debian:~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.0.32-Debian_7etch5-log Debian etch distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Personne | | aaa | | c_linux_perl | | joomla | | logs_apache | | mysql | +--------------------+ 7 rows in set (0.00 sec) mysql> exit Bye lami20j@debian:~$ mysql -u root -p < db_abc.sql Enter password: lami20j@debian:~$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 5.0.32-Debian_7etch5-log Debian etch distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | Personne | | aaa | | abc | | c_linux_perl | | joomla | | logs_apache | | mysql | +--------------------+ 8 rows in set (0.00 sec) mysql> use abc; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +---------------+ | Tables_in_abc | +---------------+ | personne | +---------------+ 1 row in set (0.00 sec) mysql> desc personne; +--------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | nom | varchar(30) | YES | | NULL | | | prenom | varchar(50) | YES | | NULL | | | age | int(11) | YES | | NULL | | +--------+-------------+------+-----+---------+----------------+ 4 rows in set (0.04 sec) mysql> exit Bye lami20j@debian:~La commande en gras tu la mets dans crontab.
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
25 avril 2008 à 14:34
25 avril 2008 à 14:34
Tu peux faire un script shell qui se connecte à la base et passe les requêtes. Dans la crontab, tu n'as plus qu'à appeler le script en question.
Le problème c'est que je suis un gros noob en linux et c'est justement dans mon script que je ne vois pas quoi mettre. :s
Quelque chose comme :
mysql --user=monuser --password=monpass
delete from nomtable;
load data infile 'cheminfichier.txt' ignore into table nomtable fields terminated by ';'
?
Quelque chose comme :
mysql --user=monuser --password=monpass
delete from nomtable;
load data infile 'cheminfichier.txt' ignore into table nomtable fields terminated by ';'
?
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
25 avril 2008 à 14:43
25 avril 2008 à 14:43
Fais-toi un fichier script.sql avec tes requêtes à passer.
Puis, dans un script shell :
/usr/local/mysql/bin/mysql -u root -pmotdepasse -D nombase < script.sql
A adapter au besoin.
Puis, dans un script shell :
/usr/local/mysql/bin/mysql -u root -pmotdepasse -D nombase < script.sql
A adapter au besoin.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
>
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
25 avril 2008 à 14:51
25 avril 2008 à 14:51
Salut,
plus rapide que moi ;-))
plus rapide que moi ;-))
25 avril 2008 à 14:52
25 avril 2008 à 14:59
Que ça soit dans le cron ou dans le script shell c'est pareil, c'est toujours un fichier.
25 avril 2008 à 15:05
Je travaille sur un programme informatique dont la maintenance et le développement est assuré par une entreprise sous-traitante. Les données du programme sont confidentielles, le sous-traitant ne doit pas voir certaines infos, notamment les mots de passe des bases de données.
Régulièrement, quand il y a un problème, ils viennent me voir pour savoir dans quel ordre les taches sont lancées le matin (il s'agit d'une application lourde qui met un moment à démarrer). Si le mot de passe apparaît dans la crontab... ils ne sont pas aveugles et voient le mot de passe. Tandis qu'en planquant tout ça dans un script, ils ne voient rien dans la crontab...
Ils peuvent regarder le fichier lancé, ça oui... mais ils ne peuvent pas le faire sans mon accord, et si je veux bien, je prends soin de dégager le mot de passe avant.
Le problème de la crontab, c'est que si j'y avais des mots de passe en clair, je n'oserais plus trop y toucher de peur que quelqu'un soit derrière mon dos et lise mon écran... si y'a des mots de passe affichés, c'est ballot.
25 avril 2008 à 15:09
je suis d'accord avec toi, dans ce cas, sans doute qu'il vaut mieux écrire un script
25 avril 2008 à 15:10