GNU/Linux >> Znalost Linux >  >> Linux

Zkontrolujte, zda existuje databáze mysql, proveďte akci na základě výsledku

Dávám +1 odpovědi @chown, ale tady je další alternativa:Pokud bash skript běží lokálně s instancí MySQL a znáte cestu k datadir, můžete otestovat:

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

To také předpokládá, že váš uživatel shellu spouštějící skript má oprávnění na úrovni souborového systému číst obsah datadir MySQL. To je často případ, ale není to jisté.


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

V závislosti na stavu ukončení příkazu mysqlshow provede následující echo.


Příklad skriptu (Díky Billu Karwinovi za --user a --password komentář!):

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

Takto vypadají příkazy při spuštění na výzvu:

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

Pokud žádná DB neexistuje, výstup bude vypadat takto:

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

Poté analyzujte výstup a udělejte to, co potřebujete, na základě toho, zda existuje nebo ne!


Linux
  1. Vylepšete mezipaměť databáze MySQL

  2. Skriptované zálohy databáze MySQL

  3. Zkontrolujte databázi, zda není poškozená

  1. Importujte databázi MySQL

  2. Duplikovat celou databázi MySQL

  3. MySql databáze z usb klíče

  1. Vzdálené připojení k databázi MySQL

  2. Základy uživatele a databáze MySQL

  3. Přejmenujte databázi MySQL