©
. Document créé le 5 février 2012 , mis à jour le 5 février 2012.Ce qui est simple est toujours faux. Ce qui ne l'est pas est inutilisable. Paul Valéry (Mauvaises pensées)
Accueil du site > Astuces > MacOSX > Définir le mot de passe MySQL
Après installation de MySQL via port sur MacOSX, une des premières actions nécessaires est l’attribution d’un mot de passe pour l’administration de ce fantastique outil.
La démarche illustrée ici permet également de re-définir un mot de passe perdu.
Le document (en français) présent sur le site officiel de MySQL présente une démarche pour réinitialiser un mot de passe. Ce billet se veut être un complément.
Les commandes sont à exécuter via le Terminal. Terminal.app se trouve dans le répertoire principal Applications > Utilitaires (qui apparaît sous le vrai nom Applications/Utilities).
Pour arrêter le démon MySQL, le plus simple est d’utiliser la commande mysql.server fournie avec le port :
sudo /opt/local/share/mysql5/mysql/mysql.server stop
Le système demande le mot de passe administrateur et exécute la commande.
Si c’est une autre version qui est installée, ou que cette commande mysql.server n’est pas disponible, vous pouvez utiliser la commande kill.
La commande kill demande comme paramètre l’ID, le PID en réalité, le numéro du processus en cours.
Pour obtenir ce PID, la commande ps est le plus court chemin :
ps waux |grep sql|head -n 1
Si la commande ci-dessus ne donne rien, c’est que le démon n’est pas actif. Le serveur MySQL n’a pas été activé. Passez au paragraphe suivant.
Par contre, si cette commande renvoie un résultat, celui-ci donne probablement quelque chose du genre :
_mysql 91115 0,0 0,4 2510084 17788 s014 S 6:03 0:00.07 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql5 --user=_mysql --log-error=/opt/local/var/db/mysql5/mini.err --pid-file=/opt/local/var/db/mysql5/mini.pid
Ligne qui précise :
Pour arrêter le process, appeler la commande kill en précisant le PID du démon Mysql. Dans cet exemple :
sudo kill 91115
sudo permet de passer d’exécuter une commande en se substituant à l’utilisateur, en tant qu’administrateur (root).
Alternative : vous pouvez plus simplement utiliser la commande killall :
sudo killall mysqld
Attention : arrêter un serveur via kill ou killall n’est pas sans risque pour les bases de données ouvertes. Prenez soin d’effectuer cette manipulation hors connexions actives.
Toujours sous les droits d’accès root :
sudo /opt/local/bin/mysqld_safe5 --skip-grant-tables &
L’option —skip-grant-tables demande à mysql de ne pas vérifier les droits d’accès aux tables.
La commande ci-dessous renvoie :
120205 11:23:24 mysqld_safe Logging to '/opt/local/var/db/mysql5/mini.err'.
120205 11:23:24 mysqld_safe Starting mysqld daemon with databases from /opt/local/var/db/mysql5
Les erreurs - et autres messages systèmes - sont enregistrées dans /opt/local/var/db/mysql5/mini.err
Les bases de données sont enregistrés dans le répertoire /opt/local/var/db/mysql5
Toujours dans le répertoire /opt/local/bin :
./mysql5 -h 127.0.0.1 -u root mysql
qui répond :
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.61 Source distribution
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Nous sommes maintenant dans le console mysql. Pour modifier le mot de passe de l’administrateur MySQL, root, cette console attend une requête SQL du style :
mysql> UPDATE user SET Password=PASSWORD('nouveaumotdepasse')
-> WHERE User='root';
qui répond :
Query OK, 3 rows affected (0.02 sec)
Rows matched: 3 Changed: 3 Warnings: 0
Il est évident que dans cet exemple, vous devez remplacer nouveaumotdepasse par le mot de passe que vous avez choisi auparavant.
Terminer par la commande :
FLUSH PRIVILEGES;
qui recharge les privilèges. Puis
QUIT
pour quitter la consile. Cette console répondra poliment :
Bye
et vous êtes de retour au shell.
Les forums sont fermés.