Alternative måder at skrive disse muligheder på.
Du kan skrive
mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"
at sende tomme strenge som separate argumenter. Din kommentar nedenfor indikerer, at klienten stadig vil bede om en adgangskode. Sandsynligvis fortolker den det tomme argument som et databasenavn og ikke som adgangskoden. Så du kan prøve følgende i stedet:
mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"
.my.cnf-fil
Men selvom der er en måde, vil jeg stadig foreslå, at du bruger en ~/.my.cnf
fil i stedet for. Argumenter på kommandolinjen er sandsynligvis inkluderet i en procesliste genereret af ps -A -ocmd
, så andre brugere kan se dem. .my.cnf
fil, på den anden side, kan (og bør) kun gøres læsbar af dig (ved hjælp af chmod 0600 ~/.my.cnf
), og vil blive brugt automatisk. Få den fil til at inkludere følgende linjer:
[client]
user=root
password=
Derefter en simpel mysql -e "SHOW DATABASES"
vil være tilstrækkeligt, da klienten vil få sine legitimationsoplysninger fra denne fil.
Se 6.1.2.1. Slutbrugerretningslinjer for adgangskodesikkerhed
for de forskellige måder, hvorpå du kan angive en adgangskode, og deres respektive fordele og ulemper. Se 4.2.3.3. Brug af indstillingsfiler
for generel information om denne .my.cnf
fil