GNU/Linux >> Belajar Linux >  >> Linux

Periksa apakah database mysql ada, lakukan tindakan berdasarkan hasil

Saya memberikan +1 untuk dijawab oleh @chown, tetapi berikut alternatif lain:Jika skrip bash berjalan secara lokal dengan instance MySQL, dan Anda mengetahui jalur ke datadir, Anda dapat menguji:

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

Ini juga menganggap pengguna shell Anda yang menjalankan skrip memiliki hak istimewa tingkat sistem file untuk membaca konten dari direktori data MySQL. Ini sering terjadi, tetapi tidak pasti.


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

Bergantung pada status keluar dari perintah mysqlshow, ini akan menjalankan gema berikut.


Contoh skrip (Terima kasih kepada Bill Karwin untuk --user dan --password komentar!):

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

Ini adalah tampilan perintah saat dijalankan pada prompt:

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

Jika tidak ada DB, hasilnya akan terlihat seperti ini:

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

Kemudian, parsing hasilnya dan lakukan apa yang Anda perlukan berdasarkan apakah itu ada atau tidak!


Linux
  1. Cara menyalin database MySQL

  2. Periksa database untuk korupsi

  3. Dasar-dasar pengguna dan basis data MySQL

  1. Optimalkan database MySQL

  2. Tingkatkan caching Database MySQL

  3. Terhubung ke database MySQL dari jarak jauh

  1. Impor Database MySQL

  2. Gandakan Seluruh Database MySQL

  3. Ganti nama basis data MySQL