W skrypcie powłoki, jak mogę sprawdzić, czy istnieje baza danych MySQL?
23
mysqladmin -uroot create foozwraca status wyjścia 1, jeśli fooistnieje, a 0 w przeciwnym razie, ale oczywiście utworzy również bazę danych, jeśli jeszcze nie istnieje. Czy jest jakiś prosty sposób, aby po prostu sprawdzić, czy baza danych istnieje?
Dla każdego, kto może chcieć ukryć komunikat o błędzie, spróbuj tego (oczywiście rozważ usunięcie swojego hasła ze względów bezpieczeństwa): jeśli! mysql -u <użytkownik> -p <pw> -e 'użyj <nazwa_db>> 2> / dev / null; następnie mysql -u <użytkownik> -p <pw> -e 'CREATE DATABASE <nazwa bazy danych>;'; fi
Dzięki. Z kilkoma więcej opcji wiersza polecenia to lepiej integruje się w skryptach: mysql --batch --skip-column-names -e "SHOW DATABASES LIKE 'foo'" | grep foo.
Bazy danych w MySQL to foldery w systemie plików. Dzięki temu cholernie łatwo jest ustalić, czy baza danych istnieje:
test -d "/var/lib/mysql/databasename"
W tym przypadku /var/libjest to katalog danych MySQL. Zaletą tego fragmentu jest to, że nie będzie on potrzebował uruchomionego demona MySQL, ani poświadczeń. Oczywiście użytkownik uruchamiający polecenie musi mieć możliwość zejścia do tego katalogu.
DBNAME="dblookingfor"
DBEXISTS=$(mysql --batch --skip-column-names -e "SHOW DATABASES LIKE '"$DBNAME"';"| grep "$DBNAME">/dev/null; echo "$?")if[ $DBEXISTS -eq 0];then
echo "A database with the name $DBNAME already exists."else
echo " database $DBNAME does not exist."fi
Myślę, że możesz sprawdzić, czy potrzebna baza danych działa w prosty sposób w dowolnej powłoce
mysql -uUSERNAME -pPASSWORD DATABASE -e exit
a następnie sprawdź $? kod wyjścia
To polecenie próbuje użyć określonych poświadczeń (NAZWA UŻYTKOWNIKA i HASŁO), aby połączyć się z wybraną bazą danych i exitnatychmiast. Tak więc, jeśli połączenie jest prawidłowe, kodem wyjścia będzie 0, a w przeciwnym razie zero.
Oczywiście możesz przekierować dowolne wyjście w /dev/nullrazie potrzeby
PS. Ta metoda jest bardzo przydatna do sprawdzania stanu efemerycznych magazynów, które są tak szybkie i popularne w naszych czasach. Jeśli nie można połączyć się z bazą danych, należy przywrócić jak najszybciej.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.