GNU/Linux >> Tutoriels Linux >  >> Linux

Vérifiez si la base de données mysql existe, effectuez une action basée sur le résultat

Je donne +1 à la réponse de @chown, mais voici une autre alternative :si le script bash s'exécute localement avec l'instance MySQL et que vous connaissez le chemin vers le répertoire de données, vous pouvez tester :

if [ -d /var/lib/mysql/databasename ] ; then 
    # Do Stuff ...
fi

Cela suppose également que votre utilisateur shell exécutant le script dispose de privilèges au niveau du système de fichiers pour lire le contenu du répertoire de données MySQL. C'est souvent le cas, mais ce n'est pas certain.


mysqlshow "test" > /dev/null 2>&1 && echo "Database exists."

Selon l'état de sortie de la commande mysqlshow, elle exécutera l'écho suivant.


Exemple de script (Merci à Bill Karwin pour le --user et --password commentaire !):

#!/bin/bash
## --user=XXXXXX --password=XXXXXX *may* not be necessary if run as root or you have unsecured DBs but
##   using them makes this script a lot more portable.  Thanks @billkarwin
RESULT=`mysqlshow --user=XXXXXX --password=XXXXXX myDatabase| grep -v Wildcard | grep -o myDatabase`
if [ "$RESULT" == "myDatabase" ]; then
    echo YES
fi

Voici à quoi ressemblent les commandes lorsqu'elles sont exécutées à l'invite :

[[email protected] ~]# mysqlshow myDatabase
Wildcard: myDatabase
+------------------+
|    Databases     |
+------------------+
| myDatabase       |
+------------------+

Si aucune base de données n'existe, la sortie ressemblera à ceci :

[[email protected] ~]# mysqlshow myDatabase
Wildcard: myDatabase
+-----------+
| Databases |
+-----------+
+-----------+

Ensuite, analysez la sortie et faites ce que vous devez savoir si elle existe ou non !


Linux
  1. Optimiser la base de données MySQL

  2. Comment copier une base de données MySQL

  3. Améliorer la mise en cache de la base de données MySQL

  4. Vérifier la base de données pour la corruption

  5. Connectez-vous à distance à une base de données MySQL

Comment réparer la base de données MySQL

Comment sauvegarder et restaurer une base de données MySQL

Comment vérifier une base de données MySQL pour les erreurs dans cPanel

Comment vérifier les privilèges utilisateur MySQL sous Linux

Serveur de base de données MySQL

Récupérer la base de données mysql - mysql/mysqldump donne la table <database>.<tablename> n'existe pas (1146)