GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überprüfen Sie, ob eine MySQL-Datenbank vorhanden ist, und führen Sie die Aktion basierend auf dem Ergebnis aus

Ich gebe +1, um von @chown zu antworten, aber hier ist eine andere Alternative:Wenn das Bash-Skript lokal mit der MySQL-Instanz ausgeführt wird und Sie den Pfad zum Datenverzeichnis kennen, können Sie Folgendes testen:

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

Dies setzt auch voraus, dass Ihr Shell-Benutzer, der das Skript ausführt, über Berechtigungen auf Dateisystemebene verfügt, um den Inhalt des MySQL-Datenverzeichnisses zu lesen. Dies ist oft der Fall, aber es ist nicht sicher.


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

Abhängig vom Exit-Status des mysqlshow-Befehls wird das folgende Echo ausgeführt.


Beispielskript (Dank an Bill Karwin für den --user und --password kommentieren!):

#!/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

So sehen die Befehle aus, wenn sie an einer Eingabeaufforderung ausgeführt werden:

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

Wenn kein DB vorhanden ist, sieht die Ausgabe so aus:

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

Analysieren Sie dann die Ausgabe und tun Sie, was Sie tun müssen, je nachdem, ob sie vorhanden ist oder nicht!


Linux
  1. MySQL-Datenbank optimieren

  2. So kopieren Sie eine MySQL-Datenbank

  3. Verbessern Sie das Cachen von MySQL-Datenbanken

  4. MySQL-Benutzer- und Datenbankgrundlagen

  5. Gesamte MySQL-Datenbank duplizieren

So reparieren Sie die MySQL-Datenbank

So sichern und wiederherstellen Sie eine MySQL-Datenbank

Skriptgesteuerte MySQL-Datenbanksicherungen

So überprüfen Sie eine MySQL-Datenbank auf Fehler in cPanel

So überprüfen Sie die MySQL-Benutzerrechte unter Linux

MySQL-Datenbankserver