sql >> Database teknologi >  >> RDS >> Mysql

Hvordan logger man automatisk på MySQL fra et shell-script?

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



  1. MySqlDb kaster Operand skal indeholde 1 kolonne(r) på insert ignore statement

  2. Fejl:kunne ikke initialisere masterinformationsstrukturen under udførelsen af ​​Master Slave Replikering i MySQL

  3. Oracle DROP TABEL HVIS FINDER Alternativer

  4. SQL Union – En omfattende vejledning om UNION-operatøren