+ Répondre à la discussion
Affichage des résultats 1 à 11 sur 11
  1. #1
    Membre habitué Avatar de tintin72
    Inscrit en
    septembre 2003
    Messages
    656
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 656
    Points : 143
    Points
    143

    Par défaut Définir basedir et datadir dynamiquement ?

    Bonjour,

    Je voudrais savoir s'il est possible de définir le chemin pour basedir et datadir
    lors du lancement de mysql en ligne de commande.
    Comme je souhaite lancer mysql à partir d'une clé usb, la lettre du lecteur n'étant
    pas toujours la même j'aurais besoin de définir ces chemins dynamiquement.
    J'ai vu qu'il y avait les options --basedir et --datadir pour mysqld, mais je
    ne suis pas sûr de la syntaxe.
    J'ai essayé ça:
    Code :
    mysqld --install --basedir=H:/mywamp/mysql-5.5.25 --datadir=H:/mywamp/mysql-5.5.25/data
    mais sans succès.
    Quelqu'un pourrait-il me dire comment faire ?

    D'avance merci.

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 442
    Points : 612
    Points
    612

    Par défaut

    Il sert à quoi ton --install ?

  3. #3
    Membre habitué Avatar de tintin72
    Inscrit en
    septembre 2003
    Messages
    656
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 656
    Points : 143
    Points
    143

    Par défaut

    A installer le service MySQL
    Pour le lancer c'est

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 442
    Points : 612
    Points
    612

    Par défaut

    Citation Envoyé par tintin72 Voir le message
    A installer le service MySQL
    Pour le lancer c'est
    Je sais bien...

    Citation Envoyé par tintin72 Voir le message
    Je voudrais savoir s'il est possible de définir le chemin pour basedir et datadir
    lors du lancement de mysql en ligne de commande.
    Simplement, je ne trouve pas logique d'avoir une option qui permet d'installer un service dans une commande qui est censée lancer l'application!

  5. #5
    Membre habitué Avatar de tintin72
    Inscrit en
    septembre 2003
    Messages
    656
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 656
    Points : 143
    Points
    143

    Par défaut

    Simplement, je ne trouve pas logique d'avoir une option qui permet d'installer un service dans une commande qui est censée lancer l'application!
    C'est la procédure normale quand on lance MySQL comme un service:
    http://dev.mysql.com/doc/refman/5.0/...t-service.html

  6. #6
    Membre chevronné
    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 442
    Points : 612
    Points
    612

    Par défaut

    Citation Envoyé par tintin72 Voir le message
    C'est la procédure normale quand on lance MySQL comme un service:
    http://dev.mysql.com/doc/refman/5.0/...t-service.html
    Je pensais que tu voulais lancer mysql en ligne de commande.
    Apparemment tu veux plutôt lancé une commande qui permette de modifier les paramètres du service.


    Il y a surement mieux, mais tu peux deja tenter ça :

    Tu ajoutes dans ton my.ini :
    basedir="LETTRE_DU_LECTEUR:/mywamp/mysql-5.5.25/"
    datadir="LETTRE_DU_LECTEUR:/mywamp/mysql-5.5.25/data/"

    Et tu installes le service comme ça :
    mysqld --install MYSQL --defaults-file="LETTRE_DU_LECTEUR:/mywamp/mysql-5.5.25/my.ini"

  7. #7
    Membre habitué Avatar de tintin72
    Inscrit en
    septembre 2003
    Messages
    656
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 656
    Points : 143
    Points
    143

    Par défaut

    Relis mon 1er post.
    MySQL est installé sur une clé USB, je ne connais pas la lettre du lecteur avant d'avoir inséré la clé, d'où ma question: "Comment définir basedir et datadir dynamiquement".
    J'ai créé un fichier .bat qui récupère la lettre du lecteur, il faut maintenant que j'arrive à renseigner les chemins basedir et datadir lors du lancement du service (mysqld --install).

    Une idée ?

  8. #8
    Membre chevronné
    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 442
    Points : 612
    Points
    612

    Par défaut

    Reprenons.

    Pour lancer mysql tu as deux possibilités:
    - En ligne de commande
    - En service

    Si tu veux lancer mysql en ligne de commande, il faut faire :
    - mysqld --basedir=H:/mywamp/mysql-5.5.25 --datadir=H:/mywamp/mysql-5.5.25/data ( Il ne faut pas mettre --install)


    Si tu veux lancer mysql en service, il faudrait faire :
    - mysqld --remove MYSQL
    - mysqld --install MYSQL ( avec les paramètres de lecteur adéquats)
    - net start MYSQL
    Comme je ne sais pas installer un service avec autre chose que defaults-file comme paramètre, je t'ai donner une méthode pas terrible mais qui fonctionne.

    Par exemple ton .bat qui récupère le numéro du lecteur modifie aussi ton my.ini

    Tu n'as pas besoin d'utiliser --defaults-file (surtout si ton fichier de config se nomme my.ini)
    C'était surtout pour te montrer que ton fichier de config pouvait être ailleurs que sur la clé, ou avoir plusieurs noms (par ex: my_lect_h.ini, my_lect_i.ini,my_lect_j.ini ...)

  9. #9
    Membre habitué Avatar de tintin72
    Inscrit en
    septembre 2003
    Messages
    656
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 656
    Points : 143
    Points
    143

    Par défaut

    En fait actuellement mon fichier .bat installe le service, supprime le my.ini et en recréé un autre similaire avec la bonne lettre de lecteur puis lance le service.
    Ça fonctionne mais je voulais savoir s'il n'y avait pas une autre possibilité moins "tordue".
    Code :
    mysqld --basedir=G:/mywamp/mysql-5.5.25 --datadir=G:/mywamp/mysql-5.5.25/data
    Semble fonctionner mais je n'arrive pas à voir la différence entre lancer MySQL en ligne de commande et le lancer en service.

    Qu'advient t-il des autres paramètres définit dans my.ini, est ce que ce
    fichier est lu par MySQL lors du lancement ?

    Pour arrêter le serveur j'ai vu que la commande était:
    Code :
    mysqladmin -u root shutdown
    Mais j'ai une erreur car il me demande le mot de passe root (ce qui ne m'arrange pas dans mon .bat).
    Est-il possible d'arrêter le serveur sans mot de passe ?

  10. #10
    Membre chevronné
    Homme Profil pro
    Inscrit en
    juin 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juin 2011
    Messages : 442
    Points : 612
    Points
    612

    Par défaut

    Oui ton my.ini est lu car si tu ne précises rien c'est celui utilisé.

    Pour arrêter le serveur, si il tourne en service, tu peux faire net stop mysql.

    Si tu veux le lancer en ligne de commande et si ton problème est la question, tu peux mettre le mot de passe dans la ligne de commande :
    Code :
    mysqladmin -u root shutdown -pTurlututu
    Si ton problème est d'avoir le mot de passe en clair et beh je sais pas...

  11. #11
    Membre habitué Avatar de tintin72
    Inscrit en
    septembre 2003
    Messages
    656
    Détails du profil
    Informations forums :
    Inscription : septembre 2003
    Messages : 656
    Points : 143
    Points
    143

    Par défaut

    Code :
    mysqladmin -u root shutdown -pTurlututu
    Ah oui en effet, j'avais complètement oublié qu'on pouvait aussi faire comme ça.

    Les 2 solutions fonctionnent. La réécriture à la volée du fichier ini reste valable (c'est d'ailleurs ce que font les serveurs portables comme Wampee, Xammp etc...), et le démarrage en ligne de commande est aussi une bonne alternative.
    Il faut maintenant voir les avantages et inconvénients entre lancer MySQL en tant qu'application ou en tant que service.

    En tout cas merci pour ton aide.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •