GNU/Linux >> Linux Esercitazione >  >> Linux

Controlla se il database mysql esiste, esegui l'azione in base al risultato

Do +1 alla risposta di @chown, ma ecco un'altra alternativa:se lo script bash è in esecuzione localmente con l'istanza MySQL e conosci il percorso del datadir, puoi testare:

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

Ciò presuppone anche che l'utente della shell che esegue lo script disponga dei privilegi a livello di filesystem per leggere il contenuto del datadir MySQL. Questo è spesso il caso, ma non è certo.


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

A seconda dello stato di uscita del comando mysqlshow, eseguirà il seguente echo.


Script di esempio (Grazie a Bill Karwin per il --user e --password commenta!):

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

Ecco come appaiono i comandi quando vengono eseguiti al prompt:

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

Se non esiste alcun DB, l'output sarà simile a questo:

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

Quindi, analizza l'output e fai ciò di cui hai bisogno in base alla sua esistenza o meno!


Linux
  1. Ottimizza il database MySQL

  2. Come copiare un database MySQL

  3. Migliora la memorizzazione nella cache del database MySQL

  4. Controllare il database per la corruzione

  5. Nozioni di base su utenti e database MySQL

Come riparare il database MySQL

Come eseguire il backup e il ripristino di un database MySQL

Come verificare la presenza di errori in un database MySQL in cPanel

Come controllare i privilegi utente MySQL in Linux

Server database MySQL

Recupera database mysql - mysql/mysqldump restituisce la tabella <database>.<tablename> non esiste (1146)