Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/05/2012, à 13:35

waca

Commandes mysql dans un .sh à lancer dans /etc/init.d

Bonjour à tou(te)s,

Ubuntu11.04

Je voudrais qu'une commande 'mysql' s’exécute au démarrage d'ubuntu (pas au démarrage d'une session user).

Je fais donc un script (mais est-ce bien un script 'bash' à faire pour lancer des commandes mysql)? :
bon, je fais donc un fichier

#! /bin/bash
mysql -u root -pmonpasswd
grant all privileges on *.* to labase@localhost identified by 'lepasswd';
exit 0

J'enregistre le fichier sous 

grant.sh

je le copie dans  /etc/init.d

sudo cp grant.sh /etc/init.d

Je le met en 'exécutable'

sudo chmod +x /etc/init.d/grant.sh

puis dans le rc

sudo update-rc.d grant.sh defaults

Ben voilà, il ne se lance pas sad  sad

Où est-ce que je me plante svp ?

Merci.

Waca

Hors ligne

#2 Le 10/05/2012, à 14:15

Postmortem

Re : Commandes mysql dans un .sh à lancer dans /etc/init.d

Salut,
Ton bash devrait plutôt être comme ceci :

#!/bin/bash
mysql -u root -pmonpasswd << !FIN_SQL
grant all privileges on *.* to labase@localhost identified by 'lepasswd';
exit
!FIN_SQL

À tester, ça fait longtemps que j'ai pas touché à mysql !


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#3 Le 12/05/2012, à 04:22

waca

Re : Commandes mysql dans un .sh à lancer dans /etc/init.d

Merci, je viens d'essayer, mais ça ne fonctionne pas....

En fait, j'explique mon soucis.

J'ai une VM/Ubuntu11.04 accessible via FreeNX par 5 users.

Dès que je redémarre la VM, les users n'ont plus accès à la base mysql, sauf si, en terminal, je tapes ces 2 commandes

mysql -u root -pmonpasswd
grant all privileges on *.* to labase@localhost identified by 'lepasswd';

D'où l'idée, si je dis à un user de redémarrer la VM, pour pas qu'il ait à saisir lui-même ces commandes, donc de mettre ces 2 commandes directement dans le init.d

J'ai donc rajouté 

<<!FIN_SQL

  comme tu l'as suggéré, mais après redémarrage, la base n'est quand mm pas accessible, je ne sais donc pas si la commande s'est bien exécutée !

Aurais-tu d'autres suggestions ?

Merci d'avance.

Waca.

Hors ligne

#4 Le 12/05/2012, à 07:51

credenhill

Re : Commandes mysql dans un .sh à lancer dans /etc/init.d

hello
capturer des messages d'erreur,  ajouter

mysql -u root -pmonpasswd << !FIN_SQL >> /tmp/log 2>&1

Hors ligne

#5 Le 12/05/2012, à 10:06

Postmortem

Re : Commandes mysql dans un .sh à lancer dans /etc/init.d

Salut,

waca a écrit :

J'ai donc rajouté 

<<!FIN_SQL

  comme tu l'as suggéré, mais après redémarrage, la base n'est quand mm pas accessible, je ne sais donc pas si la commande s'est bien exécutée !

T'as bien rajouté le !FIN_SQL tout seul sur sa ligne après les commandes (pas d'espaces ou tabulations avant et après) ?
Sinon, fais comme t'as dit credenhill afin d'avoir un log.
Ça donne donc ça :

#!/bin/bash
mysql -u root -pmonpasswd << !FIN_SQL >> /tmp/log_mysql 2>&1
grant all privileges on *.* to labase@localhost identified by 'lepasswd';
exit
!FIN_SQL

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 14/05/2012, à 07:57

waca

Re : Commandes mysql dans un .sh à lancer dans /etc/init.d

Merci, j'ai un log qui dit :


ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Ca me cause vachement sad  sad

Waca.

Hors ligne

#7 Le 15/05/2012, à 12:47

credenhill

Re : Commandes mysql dans un .sh à lancer dans /etc/init.d

je ne connais pas mysql, mais est-ce mysql a déjà démarré quand ce script s'exécute?

Hors ligne

#8 Le 16/05/2012, à 10:47

waca

Re : Commandes mysql dans un .sh à lancer dans /etc/init.d

Ben euh, la commande est dans le

init.d

alors à savoir si
mysql est déjà lancé ??? !!!

Hors ligne