GNU/Linux >> Linux の 問題 >  >> Linux

mysql データベースが存在するかどうかを確認し、結果に基づいてアクションを実行します

@chown による回答に +1 を付けますが、別の方法があります:bash スクリプトが MySQL インスタンスでローカルで実行されていて、datadir へのパスがわかっている場合は、テストできます:

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

これは、スクリプトを実行しているシェル ユーザーが、MySQL の datadir の内容を読み取るためのファイル システム レベルの権限を持っていることも前提としています。これはよくあることですが、確実ではありません。


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

mysqlshow コマンドの終了ステータスに応じて、次のエコーが実行されます。


スクリプト例 (--user について Bill Karwin に感謝) と --password コメント!):

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

プロンプトでコマンドを実行すると、次のようになります:

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

DB が存在しない場合、出力は次のようになります:

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

次に、出力を解析し、存在するかどうかに基づいて必要なことを行います!


Linux
  1. MySQLデータベースを最適化する

  2. MySQLデータベースのキャッシュを改善する

  3. スクリプト化されたMySQLデータベースのバックアップ

  1. データベースに破損がないか確認してください

  2. MySQLユーザーとデータベースの基本

  3. MySQL データベースの名前を変更する

  1. USBスティックからのMySqlデータベース

  2. リモート証明書の確認 - MySQL

  3. mysql データベースの回復 - mysql/mysqldump がテーブル <database>.<tablename> を指定します (1146)