Je me rends compte que cela a été répondu il y a longtemps, mais il me semble beaucoup plus propre de le faire:
mysql -u root -e 'use mydbname'
Si la base de données existe, cela ne produira aucune sortie et quittera avec returncode == 0.
Si la base de données n'existe pas , cela produira un message d'erreur sur stderr et quittera avec returncode == 1. Vous feriez donc quelque chose comme ceci:
if ! mysql -u root -e 'use mydbname'; then
...do stuff to create database...
fi
Cela fonctionne bien avec les scripts shell, ne nécessite aucun traitement de la sortie et ne dépend pas de l'accès au système de fichiers local.
mysql -e "SHOW DATABASES LIKE 'foo'"
devrait vous aider.http://dev.mysql.com/doc/refman/5.1/en/show-databases.html
la source
mysql --batch --skip-column-names -e "SHOW DATABASES LIKE 'foo'" | grep foo
.Les bases de données dans MySQL sont des dossiers dans le système de fichiers. Cela facilite grandement la recherche d'une base de données:
Dans ce cas,
/var/lib
est le datadir de MySQL. Ce qu'il y a de bien avec cet extrait, c'est qu'il n'aura pas besoin d'un démon MySQL en cours d'exécution, pas plus qu'il n'aura besoin d'informations d'identification. Bien sûr, l'utilisateur exécutant la commande doit être autorisé à descendre dans ce répertoire.la source
De http://www.jbmurphy.com/2011/02/08/quick-check-if-a-mysql-database-exists/ c'est plus proche de ce que je voulais:
la source
Un peu hacky, mais cela affichera 1 si foo n'existe pas, 0 sinon:
la source
Je pense que vous pouvez vérifier si votre base de données nécessaire fonctionne de manière simple dans n'importe quel shell
puis vérifiez le
$?
code de sortieCette commande essaie vos informations d'identification spécifiques (NOM D'UTILISATEUR et MOT DE PASSE) pour se connecter à la BASE DE DONNÉES sélectionnée et
exit
immédiatement. Donc, si la connexion est correcte, le code de sortie sera 0 et différent de zéro sinon.Bien sûr, vous pouvez rediriger n'importe quelle sortie
/dev/null
si nécessairePS. Cette méthode est très utile pour vérifier la santé des stockages éphémères qui sont si rapides et populaires de nos jours. Si la base de données ne peut pas être connectée, vous devez démarrer la restauration dès que possible.
la source