• SQL > requêtes en lignes de commandes BASH

      SYNTAXE GÉNÉRALE

      mysql -unom -pmdp -e "requête;"

       

      exemple :

       

      mysql -umoi -ptoto -e "create database nom_base; create user 'moi'@'localhost';
      grant all privileges on nom_base.* to 'moi'@'localhost' identified by 'mdp'";

       

      NOTE : les commandes SQL doivent être séparées par un " ; "

      CONNEXION A UN SERVEUR SQL

      Serveur local

      mysql -u utilisateur -p nom_base

       

      -u utilisateur : utilisateur MySQL (pas Unix)
      -p : mot de passe MySQL (pas Unix). Ne pas taper le mot de passe directement dans la ligne de commande.

      nom_base : si on veut travailler directement sur une base. Pas obligatoire.

       

      exemple :

       

      mysql -u toto -p ma_base
      Enter password: ********

      Serveur distant

      mysql -h machine -u utilisateur -p nom_base

       

      -h machine : machine hôte
      -u utilisateur : utilisateur MySQL (pas Unix)
      -p: mot de passe MySQL (pas Unix)

       

      exemple :

       

      mysql -h ma_machine -u toto -p ma_base
      Enter password: ********

      SPÉCIFIER / CHANGER DE BASE DE DONNÉES

      mysql> USE ma_base;

       

      ou directement lors de la connexion:

       

      mysql -h ma_machine -u moi -p ma_base

      TRAITEMENT EN LOT

      Importation

      mysql -u moi -p ma_base < test.mysql

       

      test.mysql fichier contenant les requêtes SQL.

       

      Importer une SEULE base dans un fichier en contenant plusieurs :

       

      mysql --one-database ma_base < fichier.sql

       

      Note: si la table existe déjà, il faut la tuer avec "DROP TABLE if exists" (sinon utiliser ALTER pour modifier sa structure)

       

      DROP TABLE if exists ma_table

      Modifier le mot de passe administrateur

      dpkg-reconfigure mysql-server-5.1

       

      Deux écrans de configuration apparaitront permettant de choisir puis de confirmer le mot de passe.

      Lister l’ensemble des bases de données du serveur

      SHOW DATABASES;

       

      Pour utiliser directement du SQL en utilisant l’option -e (execute) de la sorte :

       

      mysql -u root -p -e "show databases;"

       

      Pour l’utilisation simple dans un script on utilisera les options -B (qui enlève le formatage en colonne) et -s (qui enlève l’entête de colone). Ainsi la commande :

       

      mysql -u root --password=mot_de_passe_root -e "show databases;" -B -s

       

      Ajouter des utilisateurs MySQL

      mysql -u root --password=mot_de_passe -e "GRANT ALL PRIVILEGES ON *.* TO 'nv_user'@'localhost' IDENTIFIED BY 'nv_user_mot_de_passe' WITH GRANT OPTION";

       

      Pour sortir de la commande Mysql, il suffit de taper exit et de valider.

       

      Documentation officielle de MySQL concernant la création d’utilisateurs.

       

      SÉCURISER L’ENVOI DU MOT DE PASSE

      mysql_config_editor set --login-path=local --host=localhost --user=toto --password

       

      Un prompt va demander d’entrer le mot de passe de toto.

       

      Le fichier créé se trouve à /home/toto/.mylogin.cnf

       

      Puis remplacer le code dans les scripts :

       

      mysqldump -u toto -pMotDePasse ma_base | gzip > db_backup.tar.gz

       

      par ce code :

       

      mysqldump --login-path=local ma_base | gzip > db_backup.tar.gz

       

      Importer un .tar.gz dans mysql

      tar -xzOf your_db_dump.sql.tar>.gz | mysql -u USERNAME -pPASSWORD your_database

 

Aucun commentaire

 

Laissez un commentaire