Alternatieve manieren om deze opties te schrijven.
Je kunt schrijven
mysql -u "$MYSQL_ROOT" -p"$MYSQL_PASS" -e "SHOW DATABASES"
om lege tekenreeksen als afzonderlijke argumenten door te geven. Uw opmerking hieronder geeft echter aan dat de klant nog steeds om een wachtwoord zal vragen. Waarschijnlijk interpreteert het het lege argument als een databasenaam en niet als het wachtwoord. U kunt dus in plaats daarvan het volgende proberen:
mysql --user="$MYSQL_ROOT" --password="$MYSQL_PASS" -e "SHOW DATABASES"
.my.cnf-bestand
Maar zelfs als er een manier is, raad ik je toch aan om een ~/.my.cnf
te gebruiken bestand in plaats daarvan. Argumenten op de opdrachtregel zijn waarschijnlijk opgenomen in een proceslijst die is gegenereerd door ps -A -ocmd
, zodat andere gebruikers ze kunnen zien. De .my.cnf
bestand daarentegen kan (en zou) alleen door jou leesbaar moeten worden gemaakt (met behulp van chmod 0600 ~/.my.cnf
), en wordt automatisch gebruikt. Laat dat bestand de volgende regels bevatten:
[client]
user=root
password=
Dan een simpele mysql -e "SHOW DATABASES"
is voldoende, omdat de klant zijn inloggegevens uit dat bestand haalt.
Zie 6.1.2.1. Richtlijnen voor eindgebruikers voor wachtwoordbeveiliging
voor de verschillende manieren waarop u een wachtwoord kunt opgeven, en hun respectievelijke voor- en nadelen. Zie 4.2.3.3. Optiebestanden gebruiken
voor algemene informatie over deze .my.cnf
bestand