Mysql ( 5 articles - Voir la liste )

Astuce Réinitialiser le mot de passe root de MySQL sous Windows

Si jamais vous avez perdu le mot de passe root de MySQL, il est possible de le réinitialiser, ou d'exécuter n'importe quelle commande SQL nécessitant normalement des droits administrateur.

Pour cela :

  • Rendez-vous dans le répertoire MySQL (par exemple D:\Dev\wamp\bin\mysql\mysql5.5.24)

  • Créez un fichier SQL contenant les requêtes à effectuer. Par exemple pour réinitialiser le mot de passe root :

    UPDATE mysql.user SET Password = PASSWORD ('nouveau_mot_de_passe') WHERE User = 'root';
    FLUSH PRIVILEGES;
  • Arrêtez le service MySQL s'il est lancé

  • Ouvrez une invite de commande et déplacez-vous dans le répertoire MySQL

  • Lancez la commande suivante :

    bin\mysqld.exe --defaults-file="D:\Dev\wamp\bin\mysql\mysql5.5.24\my.ini" --init-file="D:Dev\wamp\bin\mysql\mysql5.5.24\my_sql_script.sql" --console

Explications :

  • Modifiez la requête SQL pour définir le mot de passe que vous souhaitez utiliser
  • La commande mysqld doit recevoir 2 paramètres valués :
    • Le fichier de configuration de MySQL à utiliser (prendre celui déjà existant)
    • Le fichier SQL d'initialisation à lancer au démarrage (c'est lui qui contient votre fameuse requête)

Astuce Automatiser le nom des dumps avec phpMyAdmin

Si vous utilisez phpMyAdmin pour sauvegarder une base de données, vous pouvez générer automatiquement le nom du fichier sql.

Vous pouvez définir par exemple un nom de la forme <nom_bdd>_<date>. Pour cela, utilisez le modèle de nom suivant :

@DATABASE@_%Y-%m-%d

Pour la base devnotebook, vous obtiendrez par exemple devnotebook_2013-02-14.sql.

Astuce Autoriser un serveur distant à se connecter à une base MySQL

Pour autoriser une machine distante à se connecter à votre base de données MySQL, exécutez la requête suivante :

GRANT ALL privileges ON my_db.* TO my_user@my_server IDENTIFIED BY 'my_password';

Explications :

  • Dans cet exemple, l'autorisation d'accès concerne toutes les tables de la base my_db.
  • Le mot nom d'utilisateur et le mot de passe sont ceux de l'utilisateur de la base de données à laquelle on pourra se connecter.
  • Le serveur est la machine souhaitant se connecter à la base. Cela peut être son IP ou son nom.

Remarque : Si my_user doit être super-utilisateur, vous devez ajouter WITH GRANT OPTION à la requête :

GRANT ALL privileges ON my_db.* TO my_user@my_server IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Astuce Sauvegarder/Importer une base de données MySQL

Sauvegarder

Pour créer un dump de votre base de données, utilisez la commande suivante :

mysqldump --host=localhost --port=3306 --databases database1_name database2_name --user=my_user --password=my_password > path/to/dump.sql

Par défaut :

  • l'hôte utilisé est localhost
  • le port utilisé est 3306

Vous devez spécifier la ou les bases de données à sauvegarder, ainsi que les login et mot de passe d'un utilisateur ayant le droit de consultation de la base.

Importer

La commande d'import est similaire à celle de dump :

mysql --host=localhost --port=3606 --user=my_user --password=my_password --default_character_set utf8 database_name < path/to/dump.sql