Alternatywne sposoby zapisywania tych opcji.
Możesz pisać
mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"
aby przekazać puste ciągi jako oddzielne argumenty. Twój komentarz poniżej wskazuje, że klient nadal będzie prosić o hasło. Prawdopodobnie interpretuje pusty argument jako nazwę bazy danych, a nie hasło. Możesz więc spróbować zamiast tego:
mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"
.my.cnf plik
Ale nawet jeśli istnieje sposób, nadal sugeruję użycie ~/.my.cnf
plik zamiast. Argumenty w wierszu poleceń są prawdopodobnie zawarte w liście procesów generowanych przez ps -A -ocmd
, aby inni użytkownicy mogli je zobaczyć. .my.cnf
z drugiej strony plik może (i powinien) być odczytywany tylko przez Ciebie (za pomocą chmod 0600 ~/.my.cnf
) i będą używane automatycznie. Niech ten plik zawiera następujące wiersze:
[client]
user=root
password=
Następnie proste mysql -e "SHOW DATABASES"
wystarczy, ponieważ klient uzyska swoje dane uwierzytelniające z tego pliku.
Zobacz 6.1.2.1. Wskazówki dla użytkowników końcowych dotyczące bezpieczeństwa hasła
o różnych sposobach, w jakie możesz podać hasło, oraz o ich zaletach i wadach. Zobacz 4.2.3.3. Korzystanie z plików opcji
aby uzyskać ogólne informacje na temat tego .my.cnf
plik