Is it possible from within a bash script to check if a mysql database exists. Depending on the result then perform another action or terminate the script?
Advertisement
Answer
Example script (Thanks to Bill Karwin for the --user
and --password
comment!):
#!/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
These are what the commands look like when run at a prompt:
[root@host ~]# mysqlshow myDatabase Wildcard: myDatabase +------------------+ | Databases | +------------------+ | myDatabase | +------------------+
If no DB exists, the output will look like this:
[root@host ~]# mysqlshow myDatabase Wildcard: myDatabase +-----------+ | Databases | +-----------+ +-----------+
Then, parse the output and do what you need to based on if it exists or not!